์ด๋ฒˆ์—๋Š” ์ดˆ๊ฐ„๋‹จ ์•„์ดํ…œ ํš๋“์ด๋ž‘ ๋ชฌ์Šคํ„ฐ๋ž‘ ์ „ํˆฌ๋ฅผ ๊ตฌํ˜„ํ•ด๋ด„


viewimage.php?id=2abcdd23dad63db0&no=24b0d769e1d32ca73cec84fa11d028316f6e59db3d00f81430124d7064e9965d05e8df5870f83ae1f82d31a08390c91e4629836d2e67dc7a503d757bcd11737ce64dbdd9

http://aaaga.dothome.co.kr/rpg2/index.html


์ด๋ฒˆ ์˜ˆ์ œ ๊ฒฐ๊ณผ๋ฌผ์€ ์—ฌ๊ธฐ๋ฅผ ํด๋ฆญํ•˜๋ฉด ๋ณผ์ˆ˜ ์žˆ์Œ


๋˜‘๊ฐ™์ด ๋ณ€๊ฒฝ๋œ ๋ถ€๋ถ„์„ ๋นจ๊ฐ›๊ฒŒ ํ‘œ์‹œํ•ด์„œ ์„ค๋ช…ํ•ด ์ค„๊ฒŒ


enchant();

window.onload = function(){


var winsize = window.innerWidth/window.innerHeight;


var core = new Core(160*winsize.toFixed(2), 160);

core.preload ('img.png','map.png');

core.onload = function(){

core.rootScene.backgroundColor = 'yellow';


var label = new Label('์•ˆ๋…• ์„ธ๊ณ„!')


var sprite = new Sprite(16, 16);

sprite.image = core.assets['img.png'];

sprite.moveTo(16, 16);

sprite.frame = [0,0,0,0,1,1,1,1];


var controller0 = new Sprite(32, 32);

controller0.backgroundColor = 'black';

controller0.opacity = 0.2;


var controller1 = new Sprite(16, 16);

controller1.backgroundColor = 'black';

controller1.opacity = 0.3;


var map = new Map(16, 16);

map.image = core.assets['map.png'];

map.loadData([

[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],

[0,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0],

[0,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0],

[0,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0],

[0,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0],

[0,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0],

[0,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0],

[0,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0],

[0,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0],

[0,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0],

[0,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0],

[0,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0],

[0,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0],

[0,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0],

[0,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0],

[0,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0],

[0,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0],

[0,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0],

[0,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0],

[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]);ย 


map.collisionData = [

[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],

[0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0],

[0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0],

[0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0],

[0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0],

[0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0],

[0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0],

[0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0],

[0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0],

[0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0],

[0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0],

[0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0],

[0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0],

[0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0],

[0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0],

[0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0],

[0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0],

[0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0],

[0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0],

[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];


var movego ={};

var movend ={};

var angle = 0;

var toward = 0;

var tox = 0;ย 

var toy = 0;

var item = {count: 0};ย  //item์ด๋ผ๋Š” ์˜ค๋ธŒ์ ํŠธ๋ฅผ ๋งŒ๋“ค๊ณ  ๊ทธ์•ˆ์— count์†์„ฑ์„ ์ถ”๊ฐ€

var mon = {}; // mon์ด๋ผ๋Š” ์˜ค๋ธŒ์ ํŠธ๋ฅผ ๋งŒ๋“ฌ. ์†์„ฑ์„ ๊ฐ€์ง€๊ณ ์žˆ์Œ.

var hp = 10; // hp๋ผ๋Š” ์˜ค๋ธŒ์ ํŠธ์— ์ˆซ์ž๋ฅผ ์ž…๋ ฅํ•จ ์ดˆ๊ธฐ๊ฐ’์€ 10


var box0 = new Sprite(16, 16); //box0 ์ด๋ผ๋Š” ์˜ค๋ธŒ์ ํŠธ๋ฅผ ์ƒ์„ฑ ๊ทธ๋ฆผ์ž„ ์‚ฌ์ด์ฆˆ๋Š” 16.16

box0.image = core.assets['map.png']; //box0์˜ ํŒŒ์ผ์„ ์ง€์ •

box0.frame =23; // box0์˜ ๊ทธ๋ฆผ๋ฒˆํ˜ธ๋ฅผ ์ง€์ •

box0.moveTo (80, 80); //box0์˜ ์œ„์น˜๋ฅผ ์ง€์ •


var box1 = new Sprite(16, 16); //box1 ์ด๋ผ๋Š” ์˜ค๋ธŒ์ ํŠธ๋ฅผ ์ƒ์„ฑ ๊ทธ๋ฆผ์ž„ ์‚ฌ์ด์ฆˆ๋Š” 16.16

box1.image = core.assets['map.png']; //box1์˜ ํŒŒ์ผ์„ ์ง€์ •

box1.frame =23; // box1์˜ ๊ทธ๋ฆผ๋ฒˆํ˜ธ๋ฅผ ์ง€์ •

box1.moveTo (160, 160);ย  //box1์˜ ์œ„์น˜๋ฅผ ์ง€์ •


var mon0 = new Sprite(16, 16); //mon0 ์ด๋ผ๋Š” ์˜ค๋ธŒ์ ํŠธ๋ฅผ ์ƒ์„ฑ ๊ทธ๋ฆผ์ž„ ์‚ฌ์ด์ฆˆ๋Š” 16.16

mon0.image = core.assets['img.png']; //mon0์˜ ํŒŒ์ผ์„ ์ง€์ •

mon0.frame =[16,16,17,17,18,18]; // mon0์˜ ๊ทธ๋ฆผ๋ฒˆํ˜ธ๋ฅผ ์ง€์ •

mon0.moveTo (192, 80);ย  //mon0์˜ ์œ„์น˜๋ฅผ ์ง€์ •


var mon1 = new Sprite(16, 16); //mon1 ์ด๋ผ๋Š” ์˜ค๋ธŒ์ ํŠธ๋ฅผ ์ƒ์„ฑ ๊ทธ๋ฆผ์ž„ ์‚ฌ์ด์ฆˆ๋Š” 16.16

mon1.image = core.assets['img.png']; //mon1์˜ ํŒŒ์ผ์„ ์ง€์ •

mon1.frame =[16,16,17,17,18,18]; // mon1์˜ ๊ทธ๋ฆผ๋ฒˆํ˜ธ๋ฅผ ์ง€์ •

mon1.moveTo (64, 192);ย  //mon1์˜ ์œ„์น˜๋ฅผ ์ง€์ •


core.rootScene.on('touchstart', function(e){

movego.x = e.x;

movego.y = e.y;

core.rootScene.addChild(controller0);

core.rootScene.addChild(controller1);

});


core.rootScene.on('touchmove', function(e){

movend.x = e.x;

movend.y = e.y;

angle = Math.atan2(movego.x-movend.x,movego.y-movend.y);

if (-0.78539<angle && angle<0.78539) {toward = 1};

if (-2.35619<angle && angle<-0.78539) {toward = 2};

if (0.78539<angle && angle <2.35619) {toward = 3};

if (2.35619<angle && angle<3.14159 || -3.14159<angle && angle<-2.35619) {toward = 4}

});


core.rootScene.on('touchend', function(e){

toward = 0;

core.rootScene.removeChild(controller0);

core.rootScene.removeChild(controller1);

});


core.rootScene.on('enterframe', function(){

label.text = '์•„์ดํ…œ ' + item.count + '๊ฐœ' +'<br>์ฒด๋ ฅ '+hp; //label์˜ ํ…์ŠคํŠธ ๋‚ด์šฉ์„ ํ•ด๋‹น ๋‚ด์šฉ์œผ๋กœ ๋ณ€๊ฒฝ

switch(toward){

case 0: break;

case 1: sprite.frame = [6,6,6,6,7,7,7,7];

if (map.hitTest(sprite.x, sprite.y-1)){sprite.moveBy(0,-1);}; break;

case 2: sprite.frame = [2,2,2,2,3,3,3,3];

if (map.hitTest(sprite.x+16, sprite.y)){sprite.moveBy(1,0);}; break;

case 3: sprite.frame = [4,4,4,4,5,5,5,5];

if (map.hitTest(sprite.x-1, sprite.y)){sprite.moveBy(-1,0);}; break;

case 4: sprite.frame = [0,0,0,0,1,1,1,1];

if (map.hitTest(sprite.x, sprite.y+16)){sprite.moveBy(0,1);}; break;

};

tox = Math.min((core.width) / 2 - sprite.x, 0);ย 

toy = Math.min((core.height) / 2 - sprite.y, 0);ย 

tox = Math.max(core.width, tox + map.width) - map.width;ย 

toy = Math.max(core.height, toy + map.height) - map.height;ย 

core.rootScene.x = tox;ย 

core.rootScene.y = toy;ย 

controller0.moveTo(-tox +movego.x -16,-toy + movego.y-16);

controller1.moveTo(-tox +movend.x-8, -toy + movend.y-8);


label.moveTo(-core.rootScene.x, -core.rootScene.y) //label์ด ๊ฒŒ์ž„ํ™”๋ฉด์„ ๋”ฐ๋ผ์˜ค๊ฒŒ ์„ค์ •


if(box0.x-16 <= sprite.x && sprite.x <box0.x+16 && box0.y-16 <= sprite.y && sprite.y <box0.y+16){ //sprite์˜ ์ขŒํ‘œ๊ฐ€ ์ง€์ •๋œ ์œ„์น˜์— ์˜ฌ ๊ฒฝ์šฐ {}์•ˆ์˜ ๋‚ด์šฉ์„ ์‹คํ–‰ํ•จ {๊ฐ€ ์—ด๋ ค์žˆ๋Š”๊ฒƒ์— ์ฃผ์˜

if(!item.box0){ //item.box0์ด๋ผ๋Š” ๊ฐ’์ด ์ง€์ •๋˜์ง€ ์•Š์•˜์„๋•Œ {}์•ˆ์˜ ๋‚ด์šฉ์„ ์‹คํ–‰ {๊ฐ€ ์—ด๋ ค์žˆ๋Š”๊ฒƒ์— ์ฃผ์˜

item.count++ // item.count ๊ฐ’์„ 1๋”ํ•œ๋‹ค

item.box0 =1; // item.box0์— 1์ด๋ผ๋Š” ๊ฐ’์„ ์ž…๋ ฅํ•œ๋‹ค.

core.rootScene.removeChild(box0); //box0์„ ๋ณด์ด์ง€ ์•Š๊ฒŒ ํ•œ๋‹ค.

}; //if(!item.box0){๋ฅผ ๋‹ซ๋Š” ๊ด„ํ˜ธ

}; //if(box0.x-16...box0.y+16){ ๋ฅผ ๋‹ซ๋Š” ๊ด„ํ˜ธ


if(box1.x-16 <= sprite.x && sprite.x <box1.x+16 && box1.y-16 <= sprite.y && sprite.y <box1.y+16){ //sprite์˜ ์ขŒํ‘œ๊ฐ€ ์ง€์ •๋œ ์œ„์น˜์— ์˜ฌ ๊ฒฝ์šฐ {}์•ˆ์˜ ๋‚ด์šฉ์„ ์‹คํ–‰ํ•จ {๊ฐ€ ์—ด๋ ค์žˆ๋Š”๊ฒƒ์— ์ฃผ์˜

if(!item.box1){ //item.box1์ด๋ผ๋Š” ๊ฐ’์ด ์ง€์ •๋˜์ง€ ์•Š์•˜์„๋•Œ {}์•ˆ์˜ ๋‚ด์šฉ์„ ์‹คํ–‰ {๊ฐ€ ์—ด๋ ค์žˆ๋Š”๊ฒƒ์— ์ฃผ์˜

item.count++ // item.count ๊ฐ’์„ 1๋”ํ•œ๋‹ค

item.box1 =1; // item.box1์— 1์ด๋ผ๋Š” ๊ฐ’์„ ์ž…๋ ฅํ•œ๋‹ค.

core.rootScene.removeChild(box1); //box1์„ ๋ณด์ด์ง€ ์•Š๊ฒŒ ํ•œ๋‹ค.

};ย  //if(!item.box1){๋ฅผ ๋‹ซ๋Š” ๊ด„ํ˜ธ

}; //if(box1.x-16...box1.y+16){ ๋ฅผ ๋‹ซ๋Š” ๊ด„ํ˜ธ


if(mon0.x-16 <= sprite.x && sprite.x <mon0.x+16 && mon0.y-16 <= sprite.y && sprite.y <mon0.y+16){ //sprite์˜ ์ขŒํ‘œ๊ฐ€ ์ง€์ •๋œ ์œ„์น˜์— ์˜ฌ ๊ฒฝ์šฐ {}์•ˆ์˜ ๋‚ด์šฉ์„ ์‹คํ–‰ํ•จ {๊ฐ€ ์—ด๋ ค์žˆ๋Š”๊ฒƒ์— ์ฃผ์˜

if(!mon.mon0){ย  //mon.mon0์ด๋ผ๋Š” ๊ฐ’์ด ์ง€์ •๋˜์ง€ ์•Š์•˜์„๋•Œ {}์•ˆ์˜ ๋‚ด์šฉ์„ ์‹คํ–‰ {๊ฐ€ ์—ด๋ ค์žˆ๋Š”๊ฒƒ์— ์ฃผ์˜

if(Math.random()>0.2){hp --;} // ๋žœ๋ค์œผ๋กœ ์ƒ์„ฑํ•œ ์ˆ˜๊ฐ€ 0.2๋ณด๋‹ค ํด๊ฒฝ์šฐ hp๋ฅผ 1์ค„์ธ๋‹ค

if(Math.random()<=0.2){ //๋žœ๋ค์œผ๋กœ ์ƒ์„ฑํ•œ ์ˆ˜๊ฐ€ 0.2๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์„๊ฒฝ์šฐ {}์•ˆ์˜ ๋‚ด์šฉ์„ ์‹คํ–‰. {๊ฐ€ ์—ด๋ ค์žˆ์Œ์— ์ฃผ์˜

mon.mon0 =1; //mon.mon0์— 1์ด๋ผ๋Š” ๊ฐ’์„ ์ž…๋ ฅํ•œ๋‹ค.

core.rootScene.removeChild(mon0); //mon0์„ ๋ณด์ด์ง€ ์•Š๊ฒŒ ํ•œ๋‹ค.

}; //if(Math.random()<=0.2){ ๋ฅผ ๋‹ซ๋Š” ๊ด„ํ˜ธ

}; // if(!mon.mon0){ ๋ฅผ ๋‹ซ๋Š” ๊ด„ํ˜ธ

}; //if(mon0.x-16...mon0.y+16){์„ ๋‹ซ๋Š” ๊ด„ํ˜ธย 


if(mon1.x-16 <= sprite.x && sprite.x <mon1.x+16 && mon1.y-16 <= sprite.y && sprite.y <mon1.y+16){ //sprite์˜ ์ขŒํ‘œ๊ฐ€ ์ง€์ •๋œ ์œ„์น˜์— ์˜ฌ ๊ฒฝ์šฐ {}์•ˆ์˜ ๋‚ด์šฉ์„ ์‹คํ–‰ํ•จ {๊ฐ€ ์—ด๋ ค์žˆ๋Š”๊ฒƒ์— ์ฃผ์˜

if(!mon.mon1){ย  //mon.mon1์ด๋ผ๋Š” ๊ฐ’์ด ์ง€์ •๋˜์ง€ ์•Š์•˜์„๋•Œ {}์•ˆ์˜ ๋‚ด์šฉ์„ ์‹คํ–‰ {๊ฐ€ ์—ด๋ ค์žˆ๋Š”๊ฒƒ์— ์ฃผ์˜

if(Math.random()>0.2){hp --;} // ๋žœ๋ค์œผ๋กœ ์ƒ์„ฑํ•œ ์ˆ˜๊ฐ€ 0.2๋ณด๋‹ค ํด๊ฒฝ์šฐ hp๋ฅผ 1์ค„์ธ๋‹ค

if(Math.random()<=0.2){ย  //๋žœ๋ค์œผ๋กœ ์ƒ์„ฑํ•œ ์ˆ˜๊ฐ€ 0.2๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์„๊ฒฝ์šฐ {}์•ˆ์˜ ๋‚ด์šฉ์„ ์‹คํ–‰. {๊ฐ€ ์—ด๋ ค์žˆ์Œ์— ์ฃผ์˜

mon.mon1 =1; //mon.mon1์— 1์ด๋ผ๋Š” ๊ฐ’์„ ์ž…๋ ฅํ•œ๋‹ค.

core.rootScene.removeChild(mon1); //mon1์„ ๋ณด์ด์ง€ ์•Š๊ฒŒ ํ•œ๋‹ค

}; //if(Math.random()<=0.2){ ๋ฅผ ๋‹ซ๋Š” ๊ด„ํ˜ธ

}; // if(!mon.mon1){ ๋ฅผ ๋‹ซ๋Š” ๊ด„ํ˜ธ

}; //if(mon1.x-16...mon1.y+16){์„ ๋‹ซ๋Š” ๊ด„ํ˜ธย 


});


core.rootScene.addChild(map);

core.rootScene.addChild(box0); //box0์„ ํ™”๋ฉด์— ๋‚˜ํƒ€๋‚ธ๋‹ค

core.rootScene.addChild(box1); //box1์„ ํ™”๋ฉด์— ๋‚˜ํƒ€๋‚ธ๋‹ค

core.rootScene.addChild(mon0); //mon0์„ ํ™”๋ฉด์— ๋‚˜ํƒ€๋‚ธ๋‹ค

core.rootScene.addChild(mon1); //mon1์„ ํ™”๋ฉด์— ๋‚˜ํƒ€๋‚ธ๋‹ค

core.rootScene.addChild(sprite);

core.rootScene.addChild(label);

};

core.start();

};



์ด๋ ‡๊ฒŒ ์•„์ฃผ ๊ฐ„๋‹จํ•œ rpg ๊ฒŒ์ž„์„ ๋งŒ๋“ค์–ด ๋ดค์–ด ใ…‹ใ…‹ใ…‹ใ…‹


์ „๋ถ€ ๋‹คํ•ด์„œ 200์ค„๋„ ์•ˆ๋˜๋Š” ์•„์ฃผ ๊ฐ„๋‹จํ•œ ๊ตฌ์กฐ์ž„



์ง€๊ธˆ๊นŒ์ง€์˜ ๊ธ€์„ ๋ณด๊ณ  ๋”ฐ๋ผํ•œ ์‚ฌ๋žŒ์€ ์•„๋งˆ ์‘์šฉํ•ด์„œ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋‹ค๋ฅด๊ฒŒ ๋งŒ๋“ค์–ด ๋ณผ์ˆ˜ ์žˆ์„๊ฑฐ์•ผ



ํ˜น์‹œ๋ผ๋„ ๊ถ๊ธˆํ•œ์ ์ด ์žˆ์œผ๋ฉด 1๋ฒˆ๊ธ€์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋‹ค์šด๋ฐ›์•˜์œผ๋ฉด ๊ทธ์•ˆ์— text๋ผ๋Š” ํด๋”๊ฐ€ ์žˆ๋Š”๋ฐ


๊ฑฐ๊ธฐ์— ์„ค๋ช…์„œ๊ฐ€ ์žˆ์œผ๋‹ˆ ํ•„์š”ํ•œ๊ฑธ ์ฐพ์•„๋ณด๋„๋ก ํ•˜๊ณ 


๊ตฌ๊ธ€์—๋„ ์•„์ฃผ ์ ์ง€๋งŒ enchant.js ๊ด€๋ จ ๋ฌธ์„œ๊ฐ€ ์žˆ์œผ๋‹ˆ ์ฐธ์กฐํ•ด๋ณด๋Š”๊ฒƒ๋„ ์ข‹์„๊ฑฐ ๊ฐ™์Œ



๋‹ค์Œ์—๋Š” ์ด๋ ‡๊ฒŒ ๋งŒ๋“ค์–ด์ง„ htmlํŒŒ์ผ์„ apk๋กœ ๋งŒ๋“ค์–ด์„œ ์Šค๋งˆํŠธํฐ์— ์„ค์น˜ํ•˜๋Š”๋ฒ•์„ ์“ธ๊ฑฐ ๊ฐ™์Œ