SW 배움터/앱인벤터2

앱인벤터2 강좌 23: shooting 게임 제작 2

kusson 2017. 9. 5. 21:34
반응형
728x170

앱인벤터2로 shooting 게임을 제작하는 것에 관심이 있는 사람이 많아 shooting 게임 강좌2를 계속 이어가기로 했습니다. 지난 shooting 게임 강좌1에서는 shooting 게임 제작을 위한 변수 설정과 초기 상태를 설정하는 방법을 설명했습니다. 그리고 실제 게임 구동 파트에서는 장애물 출현과 미사일 발사 버튼을 터치했을때 일어나는 상황을 기술했었습니다. 이번 시간에는 그 나머지 부분에 대해서 강좌를 이어가도록 하겠습니다. 


저번 시간에 미사일을 발사 하고 끝이 났는데요 이제 미사일 발사 이후에는 어떤 상황이 벌어질까요? 벌어질 수 있는 상황을 한번 상상해 보도록 하겠습니다. 미사일과 장애물의 충돌이 있을 수 있고 또 충돌없이 그냥 지나칠수 도 있습니다. 미사일이 장애물과 충돌했다는 것은 미사일이 장애물을 폭발 시켰다는 말이 되므로 두 물체 충돌후에는 폭발 애니메이션이 일어나야 합니다. 폭발애니메이션이 일어나면 미사일과 장애물이 사라지는 것도 생각을 해야 되겠죠. 그리고 점수도 일점씩 올라가야 합니다. 또 장애물과 전투기가 충돌 할 수도 있고 그러면 또 폭발장면이 발생해야 합니다. 그리고 충돌 후에는 장애물과 전투기가 사라져야 합니다. 또 장애물과 미사일의 충돌이 일어나지 않으면 미사일과 장애물이 화면 끝까지 계속 이동하게 되는데, 화면 끝에 부딪히면 또 사라져야 합니다. 이제 그림을 보면서 프로그램을 설명하도록 하겠습니다.


먼저 장애물이 미사일에 충돌하는 경우입니다. 미사일이 장애물과 충돌한다는 것은 장애물이 폭발 한다는 것을 의미하므로 폭발소리를 한번 나게 하고 두 물체가 충돌한 지점에서 폭발 애니메이션을 실행합니다. 그리고 장애물의 위치를 원점으로 설정해서 원점에서 부터 장애물이 다시 떨어지게 합니다. 그리고 미사일과 장애물을 보이지 않게 설정합니다. 또 장애물이 미사일이나 전투기와 부딪히지 않으면 그냥 지나치게 되는데 계속 진행하다 화면의 끝에 이르면 사라지게 하고 장애물의 위치를 다시 원점으로 돌려 줍니다.


폭발 장면이 일어나는 루틴을 설명하는 부분입니다. 폭발 타이머를 실행시키면 설정된 시간이내에 폭발사진 네장을 모두 돌려줍니다. 그러면 연속적으로 폭발이 일어나는 것처럼 보입니다. 그리고 4장의 폭발 사진이 모두 돌았으면 폭발 사진도 사라지게 하고 폭발 타이머도 off 시킵니다.


미사일이 장애물을 맞히지 못하고 그냥 지나칠 수도 있습니다. 그러면 화면 끝에 도달했을때 미사일이 사라지도록 합니다. 또 미사일이 장애물과 충돌이 일어나면 점수가 한점씩 올라가도록 하고 점수가 이전 최고 점수와 비교해 더 높은 점수가 되면 최고 점수를 바꾸도록 합니다.


전투기(우주선)도 장애물과 부딪힐 수가 있는데 그때의 상황을 기술합니다. 전투기가 장애물과 충돌하면 폭발 소리가 한번 들리고 두 물체가 충돌한 지점에서 폭발 애니메이션이 실행됩니다. 원래 게임에서는 전투기 여유분으로 3~4대를 준비해 주는데 전투기가 폭발하면 한대씩 여유분이 줄어들다가 0대가 되면 게임을 끝났다는 메시지와 함께 게임을 다시 할 것인지 끝낼 것인지 알림창이 뜹니다.


이번에는 전투기의 방향을 바꾸는 방법을 설명합니다. 우측에 미사일 발사 버튼이 있기 때문에 전투기를 움직이는 데에도 버튼을 설치하면 손가락으로 좌우 버튼을 누를 수가 없는 상황이 발생합니다. 그래서 앱인벤터에서 제공하는 OrientationSensor를 이용해 핸드폰을 기울이면 전투기가 움지이게 설정합니다. 핸드폰의 방향에 따라 전투기의 머리부분이 같이 움직이게 지정해 주고 전투기가 그 방향으로 움직이게 설정합니다. 전투기의 속도는 OrientationSensor의 기본 값에 로컬 변수를 곱해서 조절할 수 있습니다. 보통 가지고 놀기에 적당한 속도는 100이라는 숫자를 곱했을 때입니다.


장애물이 그냥 밋밋하게 떨어지는 것 보다 회전하면서 떨어지는 것이 훨씬 보기에 좋을 것입니다. 게임이 시작되면 장애물을 제어하는 타이머가 On 되고 장애물 회전에 관한 블럭을 실행합니다. 저번 시간에 장애물이 조금씩 회전하는 사진 11장을 준비해서 리스트로 만들어 두었습니다. 타이머에 설정된 시간동안 1번 사진부터 차례대로 11장의 사진을 순차적으로 보여주면서 아래로 이동합니다. 그러면 장애물이 회전하는 것처럼 보입니다. 


이상으로 개략적인 shooting 게임의 강좌를 마치도록 합니다. 위에 설명한 내용외에도 더 생각해야 하는 것들이 많이 있습니다. 실제 앱인벤터로 게임을 제작해 보려고 하시는 분은 위의 설명을 참고 하셔서 더 좋은 게임을 개발해 보실것을 응원하며 shooting 강좌는 여기서 마칩니다.



반응형
그리드형