create account

아두이노 코딩-151: 게임 스페이스 1 인베이더 앱인벤터 코딩 by codingart

View this thread on: hive.blogpeakd.comecency.com
· @codingart ·
$15.30
아두이노 코딩-151: 게임 스페이스 1 인베이더 앱인벤터 코딩
![noname01.png](https://cdn.steemitimages.com/DQmeCWm2BnqRQeNniWycpZTsqwfxXzwdnBhCzG8MAHn8MUJ/noname01.png)

1980년대 초반 오락기로 등장해 많은 인기를 끌었었던 스페이스 인베이더 게임을 앱 인벤터로 코딩해 보자. 
스페이스 인베이더 게임의 개요는 스마트 폰 하단에 위치한 로케트를 터치하여 좌우로 드래그하면 총알이 발사되면 스마트폰 상단에 위치한 우주선을 맞춰 격추 시키는 게임이다. 

![noname02.png](https://cdn.steemitimages.com/DQmRkBJfafj6oXmFhjxko5R49a2JdzdyPYrVp5hgBJkfWqZ/noname02.png)
로케트와 우주선 및 총알은 Drawing and Animation에서 ImageSprite 2개와 Ball 1개를 각각 사용하기로 한다.

Score 3은 2개의 라벨로 구성된다. Score는 내용 변동이 없는 단순히 붙박이 라벨이며 뒤따르는 점수는 블록 코딩 편집에서 변수로 처리되어 그 결과가 수시로 입력된다. 한편 RESET은 버튼이며 누르면 Score 가 0으로 설정된다.

아울러 클럭이 1개 사용되는데 이는 우주선이 한 번씩 위치를 바꾸기 위한 허용 시간이며 지금의 코딩에서는 총알의 속도를 감안하여 많은 스코어를 낼 수 있도록 3초로 설정하였다. 허용 시간을 줄이면 빨리 움직이므로 총알의 속도(Speed) 값을 올려 줄 필요가 있다.

![noname03.png](https://cdn.steemitimages.com/DQmak6UwJhEoa3x9XfdVeCLvzqsGGxcmnisVimFK1QgKTvs/noname03.png)

로케트(rocket)와 우주선(saucer)은 인터넷에서 png 이미지 파일을 검색하여 마음에 드는 그래픽 파일을 다운하여 사용하도록 한다. 즉 png 그림 파일이 준비되면 속성 창에서 업로딩 기능을 사용하여 불러 온다.

총알은 이미지 파일이 아니면 Drawing and Animation의 Ball을 사용하여 속성 즉 반경(radius) 과 속도(Speed) 및 색상 설정을 해 주면 된다.

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

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

![noname05.png](https://cdn.steemitimages.com/DQmaqFcHUyMLSjDQ6rW82P77F2KD1P4KTkWwNmtwwQW7rQZ/noname05.png)

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

![noname06.png](https://cdn.steemitimages.com/DQmTvq9v5svt4Zwsi37x1V7tsQ5LFtQRLFmz9cXWUXiG6cL/noname06.png)

마지막으로 RESET 버튼을 누르면 SCORE가 0으로 재설정된다.
블록 편집을 빠져나와 저장 후 QR 코드를 스캔하여 게임을 즐겨 보자.
👍  , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,
properties (23)
authorcodingart
permlink151-1
categorykr
json_metadata{"tags":["kr","kr-newbie","manamine","jjangjjangman","kr-dev"],"image":["https://cdn.steemitimages.com/DQmeCWm2BnqRQeNniWycpZTsqwfxXzwdnBhCzG8MAHn8MUJ/noname01.png","https://cdn.steemitimages.com/DQmRkBJfafj6oXmFhjxko5R49a2JdzdyPYrVp5hgBJkfWqZ/noname02.png","https://cdn.steemitimages.com/DQmak6UwJhEoa3x9XfdVeCLvzqsGGxcmnisVimFK1QgKTvs/noname03.png","https://cdn.steemitimages.com/DQmTMHvXGj7uGL9kqQkkLPwNqanUNM44pepBnQRtn1g4bjF/noname04.png","https://cdn.steemitimages.com/DQmaqFcHUyMLSjDQ6rW82P77F2KD1P4KTkWwNmtwwQW7rQZ/noname05.png","https://cdn.steemitimages.com/DQmTvq9v5svt4Zwsi37x1V7tsQ5LFtQRLFmz9cXWUXiG6cL/noname06.png"],"app":"steemit/0.1","format":"markdown"}
created2018-09-21 06:07:00
last_update2018-09-21 06:07:00
depth0
children2
last_payout2018-09-28 06:07:00
cashout_time1969-12-31 23:59:59
total_payout_value11.535 HBD
curator_payout_value3.760 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length1,951
author_reputation41,833,111,979,966
root_title"아두이노 코딩-151: 게임 스페이스 1 인베이더 앱인벤터 코딩"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id71,829,598
net_rshares11,413,034,574,691
author_curate_reward""
vote details (47)
@bemotivated ·
This is great!  Do you share your posts on twitter? I think that is one of the best ways to get more exposure. @steemengineteam has a great tool for autoposting steemit articles to twitter.
👎  
properties (23)
authorbemotivated
permlinkre-151-1-20180921t060802
categorykr
json_metadata""
created2018-09-21 06:08:03
last_update2018-09-21 06:08:03
depth1
children0
last_payout2018-09-28 06:08:03
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length190
author_reputation-3,951,644,073,249
root_title"아두이노 코딩-151: 게임 스페이스 1 인베이더 앱인벤터 코딩"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id71,829,655
net_rshares-10,002,956,536
author_curate_reward""
vote details (1)
@pairplay ·
pairplay 가 kr-dev 컨텐츠를 응원합니다! :)
properties (22)
authorpairplay
permlinkre-codingart-151-1-20180922t003518266z
categorykr
json_metadata""
created2018-09-22 00:35:21
last_update2018-09-22 00:35:21
depth1
children0
last_payout2018-09-29 00:35:21
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length32
author_reputation49,450,702,071,116
root_title"아두이노 코딩-151: 게임 스페이스 1 인베이더 앱인벤터 코딩"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id71,900,661
net_rshares0