불꽃처럼님의 블로그 강좌를 게시하였습니다.
[출처] http://blog.naver.com/mr_crazy

엔트리 강좌 8강. 꿀단지 레이싱 게임1

헬로스크래치 | 2016-03-03 14:15:30

안녕하세요? 지난장에서 방향키로 이동하는 로켓을 만들어 보았습니다. 


이번장은 지난장에 이어 방향키로 이동하는 자동차 게임을 만들어 보겠습니다. 카레이싱 배경에서 자동차를 움직여 꿀단지가 있는 목표지점 까지 도달하는 간단한 게임입니다.

 

 

우선 오브젝트를 배경을 카레이스 배경으로 선택하여 추가합니다. 




그리고 우리가 움직여야 할 자동차 오브젝트를 탈것의 파란 경찰차를 선택하여 추가합니다.


 



그리고 우리가 도착해야할 지점에서 만나야 하는 꿀단지 오브젝트도 추가합니다.


 



추가한 파란 경찰차와 꿀단지를 적당한 크기로 줄여 주시고, 시작과 끝점으로 이동시킵니다. 레이싱의 출발점과 종료점이 되겠네요.


 


저는 경찰차의 출발점을 위쪽끝, 꿀단지의 위치를 아래쪽 끝으로 배치했습니다. 반대로 배치해도 관계는 없겠죠.


 

이제 본격적인 코딩으로 들어가 보겠습니다.

 

이번 장의 포인트는 경찰차를 방향키로 이동시키는 것입니다. 지난 장에서 다뤘던 로켓과 같은 방식으로 할 순 있지만 조금 다른점이 있습니다. 그건 바로 자동차는 옆으로 움직이지 않는 다는 점이죠. 그래서 좌, 우 방향키는 이동을 하는 것이 아니라 방향을 회전 시켜주는 것이 맞습니다. 


 

<꿀단지 레이싱 게임의 방향키 코드>



이렇게 코딩했습니다. 그런데 방향 좌, 우 방향키의 코딩이 회전으로 바뀐 것 외에 상, 하 방향키의 코딩도 이전장과는 달라졌습니다.


 

<지난 장 로켓이동의 방향키 코드>

 


지난 장에서 보았던 로켓코딩은 상, 하 방향키를 누르면 Y좌표를 10, -10만큼 바꿨습니다. 

그런데 이번 장 에서는 ‘이동방향으로 ( )만큼 움직이기’로 되어있습니다. 이것은 어떤 차이일까요?

 

 

로켓의 이동의 경우 방향의 전환이 없으므로 계속 같은 곳만 바라 보고 있습니다. 그래서 상, 하, 좌, 우 가 고정되어 있지만, 자동차의 경우 좌, 우 이동은 없고, 회전이 있을 뿐입니다. 자동차가 계속해서 회전하게 되면 진행방향은 그때 그때 달라지게 됩니다.

 

 

그래서 달라지는 방향에 따라 움직이게 하기 위해 ‘이동방향으로 ( )만큼 움직이기’를 사용한 것이죠. 


그리고 이동방향이라 함은 오브젝트를 클릭하면 나오는 기본 화살표의 방향입니다. 우리는 이 방향키를 처음 진행하는 쪽으로 적절하게 회전시켜 줘야 합니다. 




자 그럼 ‘이동방향으로 ( )만큼 움직이기’를 사용한 이유는 이제 알았습니다. 그럼 ‘이동방향으로 (5)만큼 움직이기’ 를 하면되지 ‘이동방향으로 (1)만큼 움직이기’를 5번 반복한 이유는 무엇일까요?


 

그것은 바로 자연스럽게 움직이기 위해서입니다.

여러분이 실제로 ‘이동방향으로 (5)만큼 움직이기’를 코딩해서 움직여 보시면 딱딱 끊어지며 이동하는 경찰차를 볼 수 있을 것입니다. 

그렇게 해도 기능상 문제는 없지만 좀 부자연스럽게 보이는 것이죠. 


그럼 여기까지 코딩한 내용을 동영상으로 한번 실행해 보겠습니다.


 


 

 

자 어떤가요? 좌, 방향키로 회전이 잘 됩니다. 상 하 키로는 앞 뒤로 잘 움직이죠. 


그렇지만 움직임이 다는 아닙니다. 배경그림을 무시하고 튀어 나가네요. 이렇게 하면 레이싱의 의미가 없죠. 길이 아닌곳은 갈 수없고, 사고가 됩니다. 


사고난 코딩을 살펴보겠습니다.


 


 

경찰차가 레이싱을 진행하다 카레이스 배경에 닿았는가를 확인하고, 닿았다면 자동차 사고 소리를 재생하고, 1초후 다시 시작점 위치로 이동하는 코드입니다.

 

 

제가 엔트리를 살펴보며 이해가 안되는 부분이 카레이스 배경에 닿았는가 하는 부분입니다.

 

사실 엄밀히 말하면 자동차가 움직이는 흰색 길도 카레이스 배경이라고 할수 있지 않을까요? 저 흰 배경은 닿지 않았다고 하고, 그 외의 부분은 배경에 닿았다고 하는 부분이 잘 이해는되지 않지만 엔트리의 기본 설정이라 생각하고 넘어가도록 합니다.

 

 

그리고 자동차 사고 소리 재생하기는 엔트리 강좌를 올리며 처음 나온 소리블록입니다. 사용법은 간단합니다. 원하는 소리를 등록시키고 재생하기로 선택만 하면 되는것이죠. 



 




다음은 꿀단지를 만났을 때 코딩입니다.



꿀단지를 만났을 때도 비슷합니다.

 

박수갈채 소리를 재생하고, 축하합니다를 말하고 5초후 시작위치로 돌아가는 코드입니다.

 

 

그럼 사고와, 꿀단지에 닿았을때 각각의 코드는 만들었습니다. 이둘은 어디 배치해야 할까요?

 

방향키처럼 키를 누르면 생기는 코드가 아니라 상항 실행되는 코드여야 합니다.

 

그래서 시작버튼을 클릭했을때를 진입점으로 실행해 주면 됩니다. 하지만 그냥 그냥 그렇게 바로 붙여넣으면 시작 후 단 한차례만 실행하고 말아버립니다. 사고와, 꿀단지 획득은 지속적으로 확인이 필요한 코드죠.


그래서 아래와 같이 코딩합니다. 


 


이렇게 코딩하면 시작하기를 클릭 한 후 배경에 닿았는지(사고가 났는지), 꿀단지에 닿았는지 지속적으로 확인할 수 있습니다.

 

전체코드를 살펴보죠.


 



 

자 그럼 다 되었습니다.

 

 

지금까지 코딩한 내용을 동영상으로 확인해 보겠습니다. 




꿀단지가 너무 멀어 제 실력으로는 힘들것 같아서 좀 가까이 가져다 놓았습니다. 여러분은 저 멀리 두고 한번 시간도 재보며 즐겨보시기 바랍니다.

 

 

전체적으로 봤을때 아직 코드가 완벽하진 않습니다. 주요 기능적인 부분만 설명해 드렸고, 세밀한 예외처리나 디테일에 관해선 추가 하지 않았습니다.


이 코드를 보고 여러분들이 부족한 부분이 있다면 채워 보시기 바랍니다.

 


이번 장 은 여기까지입니다. 감사합니다.

 


 

(프로젝트 공유주소)

http://goo.gl/Hv29qY

댓글
등록된 댓글이 없습니다.