이번에는 게임의 꽃이라고 할 수 있는 슈팅게임을 제작해 보겠다. 앱인벤터로도 슈팅게임을 제작할 수 있는데 화려한 여타 모바일 게임을 흉내내기는 어려워도 재미있게 시간을 보낼 수 있는 간단한 슈팅게임을 만들수는 있다.
배경화면과 전투기, 미사일등을 배치하고 장애물이 랜덤하게 떨어지게 만든 뒤 미사일을 발사해서 장애물을 폭파하게 만드는 게임을 제작해 보겠다. 이번 강좌에서는 장애물을 하나만 배치했지만 실제 게임을 제작한다면 장애물을 여러개 배치해서 여러 곳에서 장애물이 출몰하고 미사일도 여러발 발사할 수 있게 하고 전투기가 폭파되면 3~4대 까지 게임을 다시 시작할 수 있게 하는 등 우리가 다른 슈팅게임에서 볼 수 있는 완성도 높은 게임을 만들 수 있다. 여기서는 앱 인벤터로 슈팅게임을 배우는 단계이므로 최소한의 객체들로만 화면을 구성하고 각각의 움직을 통제하는 프로그램을 작성하도록 해 보자.
앱인벤터 디자이너 화면에 캔버스를 하나 배치하고 간단한 배경화면과 장애물, 미사일, 그리고 전투기등을 배치한다. 화면 상단에는 HorizontalArrangement를 하나 배치해서 현재 스코어와 지금까지의 베스트 스코어를 표시해주는 라벨을 배치한다. 남은 전투기가 몇대 인지 표시해 주는 이미지도 하나 가져다 둔다. 장애물이 폭발하는 장면을 나태내기 위한 타이머와, 미사일발사, 장애물이 회전하면서 떨어지게 하기 위한 타이머, 그리고 전투기를 좌우로 움직이게 하기 위한 타이머 등 5개의 타이머를 배치하고 폭발용 사운드 하나, 스코어를 저장하기 위한 TinyDB, 그리고 마지막으로 알림창을 띄우기 위한 Notifier까지 필요한 요소등을 배치한다.
바위돌 모양의 장애물이 회전하면서 떨어지는 장면을 나태내기 위해 12장의 각기 다른 사진을 준비하고 리스트를 작성한다. 또 폭발장면을 나타내기 위해 폭발장면이 들어가 있는 사진도 몇장 준비해서 폭발장면 리스트도 작성한다. 그리고 장애물을 몇개 폭파시켰는지 표시하는 스코어 변수등 필요한 변수들을 선언한다.
초기 화면에서는 미사일을 보이기 않게 설정하고 캔버스의 가로, 세로 크기를 지정해 준다. 또 폭파된 전투기의 갯수를 0으로 두고 미사일 발사를 기다린다. Notifier는 뒤로가기 버튼을 눌렀을때 새로운 게임을 할 것인지 아니면 게임을 빠져 나올 것인지를 선택하는 알림창을 표시해 준다. NewGame 버튼을 눌렀을 때도 초기상태와 같은 상태로 돌아간다.
장애물이 랜덤하게 떨어지는 상황을 나타내기 위해 타이머를 설정한다. 장애물 12장의 그림을 애니메이션 처리로 천천히 돌아가면서 떨어지게 한다. 12장의 그림이 다 표시되었으면 처음그림으로 되돌아 가서 다시 1번 그림부터 표시된다. 장애물이 설정된 타이머 시간에(여기서는 0.03초간격) 아래(Y축)로 5픽셀씩 떨어지게 설정하면 장애물이 회전하면서 떨어지는 모습을 적당한 속도로 표현할 수 있다.
이제 미사일 발사 버튼을 누르면 어떤 상황이 벌어질지를 나타내는 루틴을 작성하자. 미사일이 장애물에 부딪히면 스코어가 1점 올라가면서 장애물이 폭발해서 사라지고, 장애물에 부딪히지 않으면 스코어가 올라가지 않고 장애물이 그냥 지나쳐야 한다. 또 장애물이 전투기와 충돌하는 상황도 생기는데 이때는 장애물과 비행기가 모두 폭발하고 둘 다 사라져야 한다. 이러한 일련의 과정들을 나타내 주어야 한다.
이상과 같이 본인이 생각할 수 있는 여러 장면들을 프로그램화 해서 재미있는 게임을 만들 수 있으므로 도전해 보기 바란다. 다음시간에 shooting 강좌2를 계속 이어가도록 하겠다. 다음 강좌를 하기 전에도 관심있는 분들은 별 어렵지 않으므로 직접 프로그램을 제작해 보길 응원하며 실제 aia 프로그램이 필요하신 분들은 댓글로 신청하시면 또한 보내드리도록 하겠다.
'SW 배움터 > 앱인벤터2' 카테고리의 다른 글
앱인벤터2 강좌 24: 구글 대시보드 DB 사용법2 (0) | 2017.09.26 |
---|---|
앱인벤터2 강좌 23: shooting 게임 제작 2 (13) | 2017.09.05 |
앱인벤터2 강좌 21: 내차를 찾아줘 앱 제작 (81) | 2017.07.07 |
앱인벤터2 강좌 20: 운전중 문자금지 앱 만들기 (3) | 2017.07.03 |
앱인벤터2 강좌 19: fingerFind5 게임 (41) | 2017.06.20 |