Game Tutorial 4

목표

  • enemy와 player의 충돌을 검사합니다. 충돌이 있는 경우 점수를 증가시키고 enemy는 reset됩니다.

코드

**소스 코드: 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 계정으로 로그인하세요. 자세히 알아보기

UP