벽돌깨기 게임 만들기

슬라이더로 오브젝트를 움직여 볼까요?

2016.01.22
동영상 설명

■ 무엇을 만들까요?


이번 프로젝트에서 우리는 슬라이더를 이용한 벽돌깨기 게임을 만들어보겠습니다. 


 
[그림 1. 슬라이더를 이용한 벽돌깨기 게임]






■ 준비물


 

 아두이노(UNO), 1개

 

 USB 케이블, 1개

 

브레드 보드

 

엔트리 센서보드

 





■ 만들어 봅시다!


[1] 핵심 이론과 하드웨어 연결하기

[그림 2. 엔트리보드와 아두이노 연결, 슬라이딩 가변저항의 위치]



[2] 엔트리 코딩하기


벽돌깨기 게임을 만들기 위해서 필요한 오브젝트는 3가지 입니다. 공을 반사 시킬 막대 모양의 오브젝트 하나, 공 오브젝트 하나, 그리고 벽돌 오브젝트 여러개 입니다. 여기에서는 막대 모양의 오브젝트로 버스 그림의 오브젝트를 사용하겠습니다(버스 오브젝트라고 부르겠습니다). 그리고 공 오브젝트는 공 처럼 생긴 주황색 동그라미를 하나 가져오겠습니다(공 오브젝트라고 부르겠습니다). 마지막으로 벽돌 처럼 생긴 오브젝트로 박스 그림을 가져오겠습니다(벽돌 오브젝트라고 부르겠습니다).



 

[그림 2. 벽돌 깨기를 위해 필요한 오브젝트 3 가지]


STEP 1 
 



첫 번째로, 막대 모양의 버스 오브젝트에서 엔트리 코딩을 시작하겠습니다. 엔트리 보드의 슬라이딩 가변 저항을 좌 우로 움직일 때마다 이 버스 오브젝트는 화면에서 좌 우로 움직여야 합니다. 그리고 좌 우로 움직이는 범위는 화면의 X 좌표값의 범위 안에 포함되어야 합니다. 슬라이딩 가변 저항을 제일 왼쪽으로 움직이면 그 값이 0 이고 가장 오른쪽으로 움직이면 1023 입니다. 즉, 슬라이딩 가변 저항의 움직임은 엔트리에서 0 ~ 1023 사이의 값으로 나타납니다. 그래서 이 값을 엔트리 화면의 X 좌표 - 200 ~ + 200 으로 변환하겠습니다. 이 정도의 변환 범위 값은 화면에서 공을 반사 시키는 데에 충분한 값입니다. 참고로 엔트리 보드의 슬라이딩 가변 저항은 아두이노의 아날로그 2번에 연결되어 있습니다.



 

[그림 3. 버스 오브젝트의 아날로그 센서값 변환 코드]


STEP 2 
 

이제 벽돌 오브젝트를 선택합니다. 여기에서는 벽돌을 총 15개 복제하는 코드를 만듭니다. 벽돌을 가로로 5개, 세로로 3개씩 쌓을 거라서 "3번 반복하기"와 "5번 반복하기"를 [그림 4]의 코드처럼 사용하면 됩니다. 그리고 벽돌의 x, y좌표값을 [그림 4] 코드 처럼 조정을 해 줘야 벽돌 15개가 원하는 대로 정렬이 됩니다. 마지막으로 공이 벽돌에 닿으면 "벽돌개수" 변수를 1씩 빼면서 벽돌 복제본을 하나씩 삭제해 줍니다.



 

[ 그림 4. 벽돌 오브젝트 코드]


STEP 3 
 

마지막으로 공 오브젝트를 선택합니다. 게임을 시작할 때의 메세지와 공이 떨어지는 방향을 [그림 5]의 코드처럼 설정합니다.


 


[ 그림 5. 공 오브젝트의 시작 코드]



STEP 4 
 

버스 오브젝트와 벽돌 오브젝트에 공이 닿아서 반사되는 각도를 정해 줍니다. 




 

 [그림 6. 공의 반사각 ]


STEP 5 
 

모든 벽돌이 다 삭제될 때는 게임 클리어 메세지를, 공이 아래쪽 벽에 닿아서 게임 실패가 되면 게임 오버 메세지를 추가해 줍니다.



[그림 7. 게임 클리어와 게임 오버 메세지]


■ 관련자료