SW 배움터/앱인벤터2

앱인벤터2 강좌 4: 두더지 잡기

kusson 2016. 12. 22. 12:45
반응형
728x170

 이번에는 두더지 잡기 게임을 만들어 보겠습니다. 화면에 25개의 두더지 구멍이 있고 이 구멍으로 두더지 두마리가 0.8초 간격으로 임의로 출몰합니다. 이 두더지를 손가락으로 정확히 터치하면 점수가 1점씩 올라가고 점수가 50점이 되면 메시지가 나오면서 "계속" 또는 "그만"을 선택하게 합니다.

 

 

  디자이너 블럭에 위와 같이 25개의 홀과 2마리의 두더지를 배치합니다. 캔버스를 화면전체에 배치하고 각각의 홀과 두더지 위치에는 이미지 스프라이트를 배치해서 이미지를 홀과 두더지 그림으로 전환합니다. 두더지 두마리가 움직이기 때문에 클락을 두개 배치합니다. 각각의 클락은 언제나 활성화가 되도록 "TimerAlwaysFires" 와 "TimerEnabled"를 체크하고 TimerInterval은 0.8초로 설정합니다. 너무 느리면 게이머가 지루할 수 있고 또 너무 빠르면 두더지를 잡을 수 없기 때문에 0.8초 정도면 무난하다고 생각합니다. 앱인벤터는 내부적으로 밀리세크 단위로 시간을 측정하기 때문에 800으로 타임인터벌을 설정하면 우리의 시간개념으로는 0.8초가 됩니다.

 

 

 

 다음은 블럭에디터로 가서 초기화 설정을 해 줍니다. 처음의 디자이너 에디터에서 홀의 좌표를 확인한 다음 두더지가 나타날 위치를 전역변수 X좌표와 Y좌표로 리스트를 작성합니다. 다음은 두더지가 움직이는 좌표를  "MoveTo" 블럭과  "pick a random item list" 블럭을 연결해 X표와 Y좌표에 설정된 5X5개 즉 25개의 위치에 임의로 두더지가 나타나도록 합니다.

 그 다음은 Timer 이벤터 블럭에 "moveRnadom"블럭을 호출해서 0.8초 간격으로 두마리의 두더지가 출현하도록 합니다.

 

 

 

 이제 두더지를 손가락으로 터치하게 되면 0.5초 동안 진동이 울리고 점수가 1점씩 올라가도록 프로그램합니다. 점수가 1점씩 올라가다가 50점이 되면 게임을 중지하고 "게임을 다시시작하겠습니까?" 라는 메시지를 출력하도록 합니다. 두더지 두마리 각각에 대해 정확히 터치가 되면 점수가 합산되고 두마리의 두더지는 독립적으로 움직입니다.

 

 

 

 두더지 50마리를 잡아서 "게임을 다시 시작하겠습니까?" 라는 메시지가 출력될때 "OK"를 누르면 다시 게임을 시작하고 "Exit"를 누르면 게임을 중지하고 게임을 빠져 옵니다. "ResetButton"을 누르면 점수를 0점으로 리셋하고 게임을 다시 시작합니다.

 

 

 

 

반응형
그리드형