본문 바로가기
Programming/Entry

엔트리(entry)로 비행기 슈팅게임 만들기 - 4. 비행기 만들기

by BACKK0M 2019. 4. 11.
반응형

1. 기획

2. 시작화면 및 설명화면 만들기

3. 운석 만들기

4. 비행기 만들기

5. 미사일 만들기

6. 점수 측정하기

7. 엔딩 화면 만들기

8. 상점 화면 만들기

9. 상점 구매기능 만들기

10. 공격 속도 업그레이드 적용하기

11. 이동 속도 업그레이드 적용하기

12. 총알 개수 증가 업그레이드 적용하기

13. 폭탄 적용하기

14. 난이도 적용하기1

15. 난이도 적용하기2

16. 난이도 적용하기3

17. 보스 만들기

18. 효과음 넣기

19. 오프닝 화면, 엔딩 크레딧 만들기

20. 공유하기

 

지난 과정에선 장애물인 운석오브젝트를 생성하였습니다. 이번 포스팅엔 장애물을 피할 비행기를 만들어 보도록 하겠습니다. 생각해보니 우주 배경이니 우주선이나 로켓이라 해야겠네요. 로켓이라 칭하겠습니다.

 

우선 사용할 로켓 오브젝트를 추가해줍니다.

 

로켓으로 사용할 오브젝트 추가

 

로켓 오브젝트를 보면 여러 모양을 가지고 있습니다. 어차피 한 가지 모양만 사용할 것이기 때문에 다른 모양은 지우셔도 됩니다(지우지 않아도 됩니다!).

 

필요없는 모양 제거

사용할 로켓 오브젝트의 크기가 너무 크므로 30으로 크기를 바꿔주겠습니다. 그리고 시작했을 때 너무 위에 있으면 바로 게임이 끝날 수 있기 때문에 바닥 쪽에 위치하도록 수정하겠습니다.

 

로켓의 크기 및 좌표 변경

이제 코딩을 해볼까요?

우선 움직이는 기능부터 구현해보도록 하겠습니다. 키보드의 방향키를 사용하여 상하좌우로 움직일 수 있게 하겠습니다. 로켓은 게임 장면이 시작되면 바로 움직여야 됩니다. 따라서 장면이 시작되었을 때 블록을 사용합니다. 현재 좌표에서 일정 값만큼 움직여야 하기 때문에 ~만큼 바꾸기 블록을 사용합니다.

 

로켓 움직이기1

이제 로켓을 키보드 방향키로 움직일 수 있게 되었습니다. 하지만 한 가지 문제가 발생합니다. 바로 사방에 있는 벽을 통과해 넘어갈 수 있다는 점이죠. 화면 밖으로 나가지 않게 하기 위해선 각 벽에 닿았는지를 판단해야 합니다. 만약 벽에 닿아있으면 방향키를 누른다 하더라도 추가적으로 그 방향으로 움직이지 않게 해야 합니다. 아래와 같이 코드를 수정해보겠습니다.

 

로켓 움직이기2

이제 화면 안에서만 움직일 수 있게 되었습니다. 움직이는 코드를 함수로 만들어보겠습니다. 함수 이름은 로켓움직이기로 하겠습니다.

 

로켓 움직이기3
로켓 움직이기4

위에서 내려오는 운석오브젝트와 충돌하게 되면 게임이 끝나야겠죠? 이제 이 운석오브젝트와의 충돌처리를 해보겠습니다. 운석오브젝트와 닿아있는지 확인하면 쉽게 해결할 수 있습니다. 운석오브젝트와 닿을 경우 모든 코드를 멈추도록 설정하겠습니다.

 

로켓 충돌처리1

로켓이 운석오브젝트와 충돌할 경우 2초간 게임오버를 말한 뒤 모든 코드가 멈추게 됩니다. 충돌처리 또한 함수로 만들어 사용하도록 하겠습니다. 함수 이름은 로켓충돌확인으로 하겠습니다.

 

로켓 충돌처리2
로켓 충돌처리3

이제 간단한 게임이 만들어졌습니다!! 

 

다음 포스팅에서는 미사일을 만들어 발사하고 장애물을 제거하는 코딩을 해보도록 하겠습니다.

감사합니다 :)

반응형