앱 인벤터 appinventor

게임 스페이스 인베이더 앱인벤터 코딩

coding art 2017. 10. 31. 16:09
728x90



앱 인벤터 코딩 능력 배양을 위해 간단한 스페이스 인베이더 게임을 앱 인벤터로 코딩해 보자.
스페이스 인베이더 게임의 개요는 스마트 폰 하단에 위치한 로케트를 터치하여 좌우로 드래그하면 총알이 발사되어 스마트폰 상단에 위치한 우주선을 맞춰 격추 시키는 게임이다.











로케트와 우주선 및 총알은 Drawingand Animation에서 ImageSprite 2개와 Ball 1개를 각각 사용하기로 한다.
 Score 3은 2개의 라벨로 구성된다. Score 는 내용 변동이 없는 단순히 붙박이 라벨이며 뒤따르는 점수는 블록코딩 편집에서 변수로 처리되어 그 결과가 입력된다. 한편 RESET은 버튼이며 누르면 Score 가 0으로 설정된다.
아울러 클럭이 1개 사용되는데 이는 우주선이 한 번씩 위치를 바꾸기 위한 허용 시간이며 지금의 코딩에서는 총알의 속도를 감안하여 많은 스코어를 낼 수 있도록 3초로 설정하였다. 허용 시간을 줄이면 빨리 움직이므로 총알의 속도(Speed) 값을 올려 줄 필요가 있다.












로케트(rocket)와 우주선(saucer)은 블로그에서 png 이미지 파일을 다운하여 사용하도록 한다. 총알은 이미지 파일이 아니면 Drawing and Animation의 Ball을 사용하여 속성 즉 반경(radius) 과 속도(Speed) 및 색상 설정을 해 주면 된다.


saucer.png

rocket.png



블록 코딩에서 퍼즐을 맞춰 보기로 한다.
스크린을 초기화함에 있어 총알은 발사 시에 볼 수 있어야 하나 스크린 초기화 시에는 거짓(false) 으로 설정하여 볼 수 없도록 한다.

로케트스프라이트는 드래그할 때에 X좌표 값을 얻어낸다.



아래의 코딩에서는 로케트스프라이트를 터치했을 때 총알 발사지점의 좌표,가시성,속도 및 방향을 설정한다.


이어서 총알 발사 후 총알이 우주선(SaucerSprite)과 부딪힐때의 조건으로서 총알의 가시성을 즉각 OFF 함과 동시에 로케트의 X 좌표에 로케트 너비의 반만큼을 더하고 Y 좌표는 20 만큼 감한 위치를 잡아 발사 위치로 잡는다.  그리고 Score를 1점 가산한다. 아울러 Clock1에서는 우주선의 폭의 반만큼 좌우 양측경계에서 우주선까지의 거리를 감안하면 캔바스 폭에서 우주선의 폭만큼 감하면 되며 이 범위를 대상으로 우주선의 위치를 난수를 사용하여 설정한다.



마지막으로 RESET 버튼을 누르면 SCORE를 0으로 재설정한다.

saucer.png
0.0MB
rocket.png
0.01MB