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

엔트리 강좌 7강. 방향키 이동

헬로스크래치 | 2016-03-03 14:07:59

안녕하세요? 며칠만에 찾아뵙네요.

오늘은 오브젝트를 키보드 방향키로 조정하는 것에 대해 알아보겠습니다.

 

 

먼저 배경 오브젝트로 별 헤는 밤을 선택해줍니다. 




그리고 다시 오브젝트를 추가하는데 탈 것 의 로켓을 추가합니다.




로켓의 크기를 적당하게 반정도 크기로 줄여봅니다.



자 이제 로켓을 방향키로 이동시키는 코드를 작성해 보겠습니다.

우리가 흔히 비행기 슈팅 게임에서 상하좌우 움직며 미사일을 피하고 게임을 진행했던 그런 움직임 입니다.

 

 

먼저 상,하,좌,우 키를 누르면 그 방향으로 움직이게 해 보겠습니다.


 


간단하게 4개의 키를 누르면 X,Y 좌표를 10씩 바꾸는 방식으로 코딩을 했습니다.

 

엔트리에서는 좌-우로 이동할 때 X좌표를 이용하고, 상-하로 이동할 때 Y좌표를 이동합니다. 

왼쪽과 아래쪽은 -, 오른쪽과 위쪽은 +입니다. 


10만큼 바꾸기를 쓴 이유는 숫자를 더 크게하거나 작게 해도 좋지만 테스트를 해본 결과 10정도가 적당했기 때문입니다.

 

숫자를 크게 하면 움직임은 빠르지만 자연스럽지 못하고, 숫자를 작게하면 자연스럽게 움직이지만 느립니다.

 

 

 

 

 

자 그럼 위 코딩에 대한 결과값을 동영상으로 확인해 보겠습니다.


 

어떤가요? 상,하,좌,우 키를 누르면 해당 방향으로 잘 움직이는 것을 볼 수가 있습니다.

하지만 여러분들도 느끼시겠지만 이상한점이 있습니다. 

 

 

바로 화면 로켓이 밖으로 나가는 현상입니다. 상,하,좌,우 어떤 키든 계속 누르면 화변 밖으로 사라지게 됩니다.

 

이것은 문법상의 에러는 아니지만 분명한 에러입니다. 예외 처리를 통해 잡아줘야 합니다.

 

 

 

 

그럼 화면 밖으로 나가지 못하게 코딩해 보겠습니다.


 



위 코드는 기존코드에 예외처리용 코드를 더 한 것입니다.


각 화살표를 눌렀을 때 해당 벽에 닿았는지 확인해서 해당좌표의 크기만큼 반대로 움직입니다. 아래쪽 화살표를 누르면 Y좌표를 -10만큼 움직이되, 만약 아래쪽 벽에 닿으면 Y좌표를 10만큼 움직이라는 것입니다.

 

이는 오브젝트가 밖으로 나가더라도 순식간에 제 위치로 이동한 것처럼 보여 더 이상 밖으로 나가지 않는 효과를 나타냅니다.

 

가령 아래쪽 벽에 닿았을때 움직이는 좌표의 절대값 크기가(10) 화살표를 눌렀을 때 보다 작다면 점점 아래로 내려가 화면 밖으로 숨겨질 것이며, 크다면 벽에 닿아있는 것이 아니라 튕겨져 나간 것 처럼 통통 튀는 효과가 나타 날 것입니다.

 


 

그럼 예외 처리까지 끝낸 위 코드의 결과를 동영상으로 확인 해 보겠습니다.

 

 


 

원하는 데로 아주 잘 되네요. 오늘은 여기까지입니다. 감사합니다. 


(프로젝트 공유주소)

http://goo.gl/owYeQR

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