스크래치 아두이노 벽돌깨기 게임 1

벽돌깨기 게임을 만들면서 스크래치 아두이노 코딩방법을 배워보겠습니다. 벽돌깨기 게임을 하는 동안 서보모터가 공이 날아가는 방향으로 회전합니다. 스크래치 아두이노로 벽돌깨기 게임을 만들면서 여러분의 코딩 실력을 키우기 바랍니다. 

 

게임 알아보기

브릭 브레이커 볼(Brick Breaker Ball)이란 게임을 아시나요? 공을 이리저리 튕기면서 벽돌을 깨는 게임입니다. 벽돌에 적힌 숫자만큼 공을 부딪쳐야 벽돌이 깨지는 게임입니다. 하얀색 동그라미에 부딪히면 공의 개수가 늘어납니다.

그림 2-22 브릭 브레이커 볼 게임

 

우리는 이와 비슷한 벽돌께임을 만들겠습니다. 우리가 만들 게임의 규칙은 다음과 같습니다.

 

여기에서 코딩의 중요한 원칙을 다시 한 번 정리합시다.


한 번에 한 가지 문제만 생각한다.

 

두 가지를 동시에 생각하려면 문제가 복잡해 보이고, 머리도 아픕니다. 한 번에 한 가지 문제만 생각해서 문제를 해결하는 것이 매우 중요합니다. 우선, 화살표 키로 공이 날아가는 방향으로 정하고, 화살표로 공이 날아가는 방향을 보여주도록 코딩을 해봅시다.

 

곰돌이를 마우스 오른쪽 버튼으로 클릭을 하고 삭제를 누릅니다.

그림 2-23 곰돌이 삭제하기

 

그리고 공을 하나 그리겠습니다. 붓 아이콘을 클릭하여 새 스프라이트를 그립니다.

그림 2-24 새 스프라이트

 

오른쪽 메뉴에서 타원을 클릭하여 동그라미 모양을 그리고 이름을 공이라고 바꿉니다.  Shift 키를 누르고 그리면 원을 그릴 수 있습니다.

그림 2-25 원 그리기

 

그리고 화살표 스프라이트를 만들겠습니다. 붓 아이콘을 클릭하고 그림 2-26과 같이 그림을 그립니다.

그림 2-26 화살표 처음

 

오른쪽 메뉴에서 <형태고치기>를 클릭 합니다. 그러면 모서리 점이 생기는데 이 점을 옮기면 모양이 바뀝니다.

그림 2-27 형태고치기

 

그림 2-28처럼 화살표를 그립니다.

그림 2-28 화살표 모양 바꾸기

 

그린 도형을 하나처럼 만들어야 합니다. 마우스로 그린 것을 모두 선택하고 그룹화를 해서 그림을 하나로 묶어줍니다.

그림 2-29 그룹화 적용

 

그리고 그림의 중심을 화살표 아래로 정합니다. 이 점을 중심으로 화살표가 회전합니다.

그림 2-30 중심점 맞추기

 

게임이 시작되면 화살표는 공의 위치로 이동합니다. 그리고 위쪽 화살표 키를 누르면 시계방향으로, 아래쪽 화살표 키를 누르면 시계반대 방향으로 회전합니다. 화살표를 마우스 오른쪽 클릭하여 정보를 선택하면 방향을 볼 수 있습니다.

그림 2-31 화살표 회전

 

공이 잘 움직이려면 방향이 179도보다 작을 때만 시계방향으로 회전하고, 1보다 클 때만 시계 반대 방향으로 회전해야 합니다.

그림 2-32 회전 범위를 정하기

 

함수를 이용하여 다시 코딩합니다.

그림 2-33 함수를 이용하여 코딩하기

 

이제는 화살표가 가리키는 방향으로 공이 날아가게 만들어야 합니다. 먼저 바닥을 하나 그립니다. 공이 시작하고 멈추는 곳이죠.

그림 2-34 바닥 그리기

 

화살표에 [화살표 방향] 변수를 만듭니다. 그리고 화살표의 방향 값을 저장합니다. 

그림 2-35 화살표 방향 변수 만들기

 

공 스프라이트를 클릭합니다. 이 공은 맨 앞에 나와야 합니다. 그리고 아래쪽 가운데로 이동합니다.

그림 2-36 맨 앞으로 나오기

 

스크래치 회전 방향은 좀 헷갈릴 수 있으니 이 부분을 자세히 읽어야 나중에 게임을 잘 만들 수 있습니다. 위쪽이 0으로, 여기를 기준을 방향이 커지면 시계방향으로 회전합니다. 우리가 쓰는 각도기와 방향이 달라서 헷갈리는데 우리가 생각하는 0도가 스크래치에서는 90도입니다.

그림 2-37 방향이 커지면 시계방향으로 회전

 

[화살표 방향] 변수 값에서 90도를 뺀 값으로 공의 날아가는 방향을 정하면 됩니다. 공의 <정보>에서 방향을 자세히 관찰해보면 잘 알 수 있습니다. 바닥에 닿을 때까지 10만큼 움직이다가 벽에 닿아 튕기면 공이 우리가 생각한 대로 움직이게 됩니다.

그림 2-38 스페이스 키를 눌렀을 때 날아가기

 

그리고 스페이스 키를 누릅니다. 다시 스페이스 키를 눌러도 공이 움직이지 않습니다. 왜일까요? 그림을 보면 알겠지만 공은 바닥에 조금 닿아 있기 때문이죠.

그림 2-39 날아가지 않는 공, 가만히 있는 화살표

 

그래서 공을 조금 위로 올려야 합니다. 그리고 공이 닿았다는 방송을 보내줍니다. 이 방송은 무슨 일을 할까요? 이 방송을 받아야 하는 스프라이트는 과연 무엇일까요? 곰곰이 생각해 봅시다. 그리고 앞의 그림을 보면 화살표가 계속 보이고, 공 쪽으로 가지도 않습니다.

그림 2-40 공을 조금 위로 올리기

 

이렇게 코딩을 하면 문제를 아주 손쉽게 해결할 수 있습니다. 스페이스 키를 눌렀다는 것은 공이 날아갔다는 뜻입니다. 그래서 화살표를 숨겨야 합니다. <공이 바닥에 닿았다> 방송을 받으면 다시 위쪽을 보고 공 쪽으로 가서 다시 숑하고 나타나면 됩니다.

그림 2-41 공 위치로 이동하는 화살표

 

화살표는 처음 시작할 때는 보여야 하니, <보이기> 블록을 맨 위에 연결합니다. 이제 벽돌을 넣어서 게임을 더욱 재미있게 만들어 볼까요?

 

댓글 (0)

Designed by JB FACTORY