**소스 코드: game-tutorial4.js
이전 튜토리얼에서 변경이 없는 부분은 설명을 생략합니다.
function calculate(){ // check key and move player if(TMI.keyboard.checkKey(KEYSET.LEFT) && player.x>2) player.x--; if(TMI.keyboard.checkKey(KEYSET.UP) && player.y>1) player.y--; if(TMI.keyboard.checkKey(KEYSET.RIGHT) && player.x+player.text.length<frame.width-2) player.x++; if(TMI.keyboard.checkKey(KEYSET.DOWN) && player.y<frame.height-2) player.y++; processCollusion(); //reset enemy if(enemy.y===null || enemy.y>frame.height-3){ resetEnemy(); } //move enemy if(++enemy.turnCount>enemy.turnCountMax){ enemy.turnCount = 0; enemy.y++; } processCollusion(); }
// check key and move player, //move enemy의 마지막에 processCollusion 호출합니다. 충돌 검사는 각 객체가 움직인 직후 매번 시행되어져야 합니다.
function processCollusion(){ if(player.y==enemy.y && player.x<=enemy.x && player.x+player.text.length>=enemy.x){ resetEnemy(); frame.score += 100; } }
player의 x, y, width와 enemy의 x, y를 고려하여 충돌을 검사합니다. 충돌이 있으면 resetEnemy함수를 호출하고 점수를 증가시킵니다. 충돌 검사에 고려되는 인자들이 추가되면 충돌검사 부분이 더 복잡하게 됩니다.(예를들어, enemy width, player height 등이 추가되는 경우)
이것으로 게임의 기능은 모두 완성이 되었습니다.
댓글
이 글에 댓글을 다시려면 SNS 계정으로 로그인하세요. 자세히 알아보기