์ด๋ฒˆ์—๋Š” ๋งต ํฌ๊ธฐ๋ฅผ ๋” ๋Š˜๋ฆฌ๊ณ  ํ™”๋ฉด์„ ์Šคํฌ๋กค ํ•˜๋Š”๊ฑธ ๊ตฌํ˜„ํ•ด ๋ณด์ž.



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

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


์˜ˆ์ œ์˜ ๊ฒฐ๊ณผ๋Š” ์—ฌ๊ธฐ์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Œ.



๋งˆ์ฐฌ๊ฐ€์ง€๋กœ main.js์˜ ์ˆ˜์ •๋œ ๋ถ€๋ถ„์„ ๋นจ๊ฐ›๊ฒŒ ํ‘œ์‹œํ• ๊ฒŒ


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]]; //๋งต ํฌ๊ธฐ๊ฐ€ ๋‘๋ฐฐ๋กœ ๋„“์–ด์ง 0์€ ์ง€๋‚˜๊ฐˆ์ˆ˜ ์—†๋Š”๊ณณ 1์€ ์ง€๋‚˜๊ฐˆ์ˆ˜ ์žˆ๋Š”๊ณณ



var movego ={};


var movend ={};


var angle = 0;


var toward = 0;


var tox = 0; //tox ๋ผ๋Š” ์˜ค๋ธŒ์ ํŠธ๋ฅผ ๋งŒ๋“ ๋‹ค. ์ˆซ์ž๋ฅผ ๋‚˜ํƒ€๋ƒ„


var toy = 0; //toy ๋ผ๋Š” ์˜ค๋ธŒ์ ํŠธ๋ฅผ ๋งŒ๋“ ๋‹ค. ์ˆซ์ž๋ฅผ ๋‚˜ํƒ€๋ƒ„


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 = toward;

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); //tox ์—๋‹ค ํ™”๋ฉด์„ ๋ฐ˜์œผ๋กœ ๋‚˜๋ˆˆ๊ฐ’์—์„œ sprite์˜ x์ขŒํ‘œ๊ฐ’์„ ๋บ€๊ฐ’์ด๋ž‘ 0์„ ๋น„๊ตํ•ด์„œ ์ž‘์€๊ฑธ ์ง‘์–ด๋„ฃ๋Š”๋‹ค.

toy = Math.min((core.height) / 2 - sprite.y, 0); //toy์—๋‹ค ํ™”๋ฉด์„ ๋ฐ˜์œผ๋กœ ๋‚˜๋ˆˆ๊ฐ’์—์„œ sprite์˜ y์ขŒํ‘œ๊ฐ’์„ ๋บ€๊ฐ’์ด๋ž‘ 0์„ ๋น„๊ตํ•ด์„œ ์ž‘์€๊ฑธ ์ง‘์–ด๋„ฃ๋Š”๋‹ค.

tox = Math.max(core.width, tox + map.width) - map.width; //tox์— ๋‹ค์‹œ ํ™”๋ฉด์˜ ๊ฐ€๋กœํฌ๊ธฐ๋ž‘ ์œ„์—์„œ ์ง‘์–ด๋„ฃ์€ tox๊ฐ’์— ๋งต์ „์ฒดํฌ๊ธฐ์˜ ๊ฐ€๋กœ๊ฐ’์„ ๋”ํ•œ๊ฒƒ์ค‘์— ํฐ๊ฑธ ์„ ํƒํ•ด์„œ ๊ทธ ๊ฐ’์—์„œ ๋งต ๊ฐ€๋กœํฌ๊ธฐ๋งŒํผ ๋บ€ ์ˆ˜๋ฅผ ์ง‘์–ด๋„ฃ๋Š”๋‹ค

toy = Math.max(core.height, toy + map.height) - map.height; //toy์— ๋‹ค์‹œ ํ™”๋ฉด์˜ ์„ธ๋กœํฌ๊ธฐ๋ž‘ ์œ„์—์„œ ์ง‘์–ด๋„ฃ์€ toy๊ฐ’์— ๋งต์ „์ฒดํฌ๊ธฐ์˜ ์„ธ๋กœ๊ฐ’์„ ๋”ํ•œ๊ฒƒ์ค‘์— ํฐ๊ฑธ ์„ ํƒํ•ด์„œ ๊ทธ ๊ฐ’์—์„œ ๋งต ๊ฐ€๋กœํฌ๊ธฐ๋งŒํผ ๋บ€ ์ˆ˜๋ฅผ ์ง‘์–ด๋„ฃ๋Š”๋‹ค

core.rootScene.x = tox; //๊ฒŒ์ž„ํ™”๋ฉด์˜ ๊ฐ€๋กœ์ขŒํ‘œ๋ฅผ tox๋กœ ์˜ฎ๊ธด๋‹ค

core.rootScene.y = toy; //๊ฒŒ์ž„ํ™”๋ฉด์˜ ์„ธ๋กœ์ขŒํ‘œ๋ฅผ toy๋กœ ์˜ฎ๊ธด๋‹ค

controller0.moveTo(-tox +movego.x -16,-toy + movego.y-16); //controller0๋ฅผ ํ•ด๋‹น ์ขŒํ‘œ๋กœ ์ด๋™์‹œํ‚จ๋‹ค

controller1.moveTo(-tox +movend.x-8, -toy + movend.y-8); //controller1์„ ํ•ด๋‹น ์ขŒํ‘œ๋กœ ์ด๋™์‹œํ‚จ๋‹ค

});


core.rootScene.addChild(map);

core.rootScene.addChild(sprite);

core.rootScene.addChild(label);


};

core.start();

};



์–ด๋•Œ ์ž˜ ๋˜๊ฐ€๋Š”๊ฑฐ ๊ฐ™์Œ? ๋ฉ”๋ชจ์žฅ๊ณผ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์ผœ๋†“๊ณ  ์ƒˆ๋กœ๊ณ ์นจ ํ•ด๊ฐ€๋ฉด์„œ


๊ฐ’์„ ๋ฐ”๊พธ๊ณ  ์ €์žฅํ•˜๊ณ  ์ƒˆ๋กœ๊ณ ์นจ ์ด๊ฑธ ๋ฐ˜๋ณตํ•˜๋ฉด


ํ…์ŠคํŠธ๋กœ ๋˜์–ด์žˆ์–ด๋„ ์ง๊ด€์ ์œผ๋กœ ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šธ๊ฑฐ์•ผ


์ด ์˜ˆ์ œ๋ฅผ ์ด๊ฒƒ์ €๊ฒƒ ๋ฐ”๊ฟ”๊ฐ€๋ฉด์„œ ํ…Œ์ŠคํŠธ ํ•˜๋ฉด์„œ ์ด๊ฑด ์™œ ์ด๊ฐ’์ผ๊นŒ๋ฅผ ๊ณ ๋ฏผํ•ด๋ณด๋ฉด ์ข‹์•„