SW 배움터/앱인벤터2

앱인벤터2 강좌 26: 무당벌레 추적하기

kusson 2017. 10. 2. 23:49
반응형
728x170

무당벌레 추적하기 게임을 만들어 보겠다. 이 게임은 David Wolber, Hal Abelson Ellen Spertus, Liz looney 등이 지은 '앱인벤터2'라는 책에서 소개된 '무당벌레 추적'이란 내용을 조금 확장한 것이다. 여기에 소개된 내용이 게임을 만드는데 필요한 여러 요소를 골고루 잘 포함하고 있어 이 게임을 잠시 소개한다. 우선 캔버스를 하나 배치시키고 그 위에 이미지 스프라이트를 3개 가져다 둔다. 그 스프라이트위에 진딧물, 무당벌레, 개구리등 세종류의 그림을 올린다. 그리고 무당벌레의 에너지 레벨을 볼수있는 슬라이더를 하나 배치하고 얼마나 오랫동안 무당벌레가 개구에게 잡혀먹지 않고 버티는지 시간을 볼 수 있는라벨, 그리고 newGame등의 버튼을 배치한다. 사진 고르기에는 무당벌레의 먹이가 되는 스프라이트의 이미지를 선택할 수 있는 이미지 픽커를 하나 가져다 둔다.



클락은 1초 단위로 타이머가 작동하면서 시간을 1초씩 더하고 개구리와 무당벌레 진딧물의 행동을 설정한다. 먼저 진딧물의 행동을 지정하는 'UpdateAphid'을 보자. 진딧물이 보이는 상태라면 20%의 확률로 진딧물의 방향을 바꾸게 설정한다. 진딧물의 방향은 0도 부터 360도까지 랜덤하게 바뀔 수 있다. 반대로 진딧물이 보이지 않는 상태라면 지딧물이 죽었다는 의미이므로 40%의 확률로 진딧물을 출몰하게 설정한다. 무당벌레의 에너지 레벨은 1초당 10씩 줄어들게 하고 에너지 레벨이 0이되면 게임이 끝나게 된다. 또 무당벌레가 진딧물을 잡아먹으면 에너지 레벨이 50이 증가하고 스마트폰을 기울이는 정도에 따라 무당벌레의 앞머리가 돌아간다.



이제 무당벌레가 진딧물을 잡아먹거나 개구리에게 잡아 먹혔을때 어떤 처리를 해 주어야 하는지 설정하자. 먼저 무당벌레가 진딧물에 부딪히면 진딧물이 사라지면서 에너지 레벨이 50이 증가한다. 그리고 무당벌레가 개구리와 부딪히면 무당벌레가 죽고 게임이 끝나게 된다. 에너지 레벨은 빨간색 바가 줄어드는 형태로 만들고 에너지 레벨이 30이하로 줄어들면 경고 사운드가 들린다. 무당벌레가 진딧물을 잡아먹으면 진딧물의 이미지가 사라졌다가 2~3초 후에 랜덤한 위치에서 다시 나온다.



newGame(restartButton)버튼을 누르면 에너지 레벨과 버틴 시간등 각각의 설정이 초기화된다.

이상으로 무당벌레 추적기를 제작해 보았다. 아직 부족한 부분들이 많이 있지만 이것으로 왠만한 게임은 제작해 볼 수 있는 여건이 갖추어 졌다. 천천히 블럭들을 잘 보면서 하나씩 따라해 보면 전체적인 흐름은 어렵지 않게 이해할 수 있을 것이다. 



반응형
그리드형