본문 바로가기

스크래치/라인트랙자동차

스크래치 아두이노 라인 센서로 게임 만들기 2

라인센서로 게임 만들기

오렌지가 위에서 아래로 계속 떨어지게 코딩을 했습니다. 그런데 계속 똑같은 자리에서 떨어집니다. 오렌지가 왼쪽 오른쪽 위치를 바꿔서 떨어지면 더욱 좋을 것 같습니다.

 

이럴 때는 난수를 이용하면 됩니다. 어떤 범위에서 아무렇게나 뽑은 수를 난수라고 합니다. -240부터 240까지의 수에서 하나를 뽑아서 오렌지의 x좌표로 정하면 됩니다. 난수는 <연산> 블록 모음에 있습니다.

그림 1-41 난수를 이용하여 오렌지 떨어트리기

 

그림 1-41처럼 코딩을 하고 잘 되는지 확인해봅니다. 어때요? 잘 되나요?

그림 1-42 떨어지는 오렌지

 

그리고 곰돌이가 오렌지에 맞으면 게임 끝이라고 말해야겠죠? 그리고 곰돌이가 더는 움직이지 못하도록 만듭니다. <그림 1-43> 즉, 움직이라고 만든 스크립트를 멈추는 겁니다.

그림 1-43 오렌지에 닿았을 때 다른 스크립트 멈추기

 

오렌지도 곰돌이에 닿으면 멈추게 하고 싶습니다. 스프라이트 고르기 창에서 오렌지를 클릭하고 그림 1-44와 같이 코딩합니다. 곰돌이에 닿으면 오렌지를 움직이게 만드는 스크립트가 멈추게 됩니다.

그림 1-44 떨어지는 오렌지 멈추기

 

어떻게 만들면 더 재미있을까요? 체력을 만들면 재미있지 않을까요? 체력이 있는데 오렌지를 맞으면 체력이 하나씩 떨어지고, 체력이 0이 되면 게임이 끝나도록 코딩을 해보겠습니다.

 

별을 이용해서 체력을 나타내겠습니다. 시작할 때는 별이 3개입니다. 곰돌이가 오렌지에 닿을 때마다 별이 하나씩 사라집니다. 우선 별 1개를 이용해서 코딩을 해보겠습니다. 스프라이트 도서관에서 별을 가져옵니다. 그리고 그림 1-45와 같이 별을 놓습니다.

 

어떻게 만들면 더 재미있을까요? 체력을 만들면 재미있지 않을까요? 체력이 있는데 오렌지를 맞으면 체력이 하나씩 떨어지고, 체력이 0이 되면 게임이 끝나도록 코딩을 해보겠습니다.

 

별을 이용해서 체력을 나타내겠습니다. 시작할 때는 별이 3개입니다. 곰돌이가 오렌지에 닿을 때마다 별이 하나씩 사라집니다. 우선 별 1개를 이용해서 코딩을 해보겠습니다. 스프라이트 도서관에서 별을 가져옵니다. 그리고 그림 1-45와 같이 별을 놓습니다.

그림 1-45 무대에 별을 넣기

 

곰돌이가 오렌지에 닿았을 때 별이 안 보이게 만들어 보겠습니다. 어떻게 하면 될까요? 바로 변수를 이용합니다. [체력]이라는 변수를 만듭니다. 그리고 오렌지 스프라이트에 코딩을 합니다. 이제 체력이 있으니 한 번에 끝나지 않습니다.

 

우선 [체력] 변수의 값을 1로 정합니다. 오렌지가 내려가다가 곰돌이와 닿으면 다시 위로 올라가야 합니다. 그리고 체력을 하나 빼야 하죠.

그림 1-46 [체력] 변수를 이용하여 코딩하기

 

그림 1-46처럼 <만약 ~라면> 블록 안에 다시 <만약 ~라면> 블록을 넣습니다. 이제 별에다가 코딩을 해야 합니다. 별은 게임이 시작되면 보였다가 체력이 0이 되면 사라집니다. <그림 1-47>

그림 1-47 체력이 0이면 숨기기

보이기숨기기는 <형태> 블록 모음에 있습니다. 곰돌이가 오렌지에 닿았을 때 별이 사라지는 것을 볼 수 있습니다. 이제 체력이 0이 되면 오렌지가 계속 움직이는 것을 멈추게 해야 합니다.

 

곰돌이에 닿았을 때 <M-panda>, 이 스프라이트에 있는 다른 스크립트를 멈추게 하는 프로그램을 바꿔야 합니다. 그림 1-48처럼 체력이 0이 되었을 때 스프라이트에 있는 다른 스크립트를 멈추게 합니다.

그림 1-48 [체력] 변수 값이 0일 때 스크립트 멈추기

 

그림 1-48처럼 바꿔주면 체력이 0이 되었을 때 오렌지가 멈춥니다.

 

이제 그림 1-49와 같이 곰돌이가 [체력]이 0일 때 게임 끝이라고 말하고 움직이지 않도록 코딩을 합니다. 이렇게 바꿔주면 곰돌이는 [체력]이 0일 때 ‘게임 끝’이라고 말하고 멈춥니다.

그림 1-49 '게임 끝' 말하고 멈추기 코딩

 

그림 1-50처럼 별 스프라이트 위에서 마우스 오른쪽 버튼을 클릭하면 복사가 나옵니다. 복사를 클릭하면 별이 하나 더 생깁니다.

그림 1-50 별 복사하기

 

그림 1-51과 같이 무대를 만듭니다. 여기서 별의 위치가 매우 중요합니다.

그림 1-51 별이 3개 있는 무대 만들기

그리고 [체력]을 3으로 정합니다. 곰돌이가 오렌지에 맞아서 체력이 2가 되면 어떤 별이 사라지나요? 첫 번째 별(Star1)이 사라집니다. 체력이 1이 되면 두 번째 별(Star2)이 사라집니다. 체력이 0이 되면 세 번째 별(Star3)이 사라집니다.

 

어떻게 코딩을 해야 할지 감이 오나요? 첫 번째 별(Star1)을 선택하고 그림 1-52와 같이 같이 코딩하면 됩니다.

그림 1-52 첫 번째 별 코딩

 

그리고 나머지 별도 이런 식으로 코딩을 하면 됩니다. 두 번째 별(Star2)은 그림 1-53과 같이 코딩합니다.

 

그림 1-53 두 번째 별 코딩

 

세 번째 별(Star3)은 그림 1-54와 같이 코딩합니다.

그림 1-54 세 번째 별 코딩

 

게임을 직접 해봅시다. 게임이 생각한 대로 잘 되나요? 이렇게 변수를 사용하면 멋진 게임을 만들 수 있습니다. 지금까지 잘 따라왔다면 여러분의 코딩 실력이 정말 좋아진 것입니다. 어려워도 괜찮습니다. 계속 반복해서 연습하다 보면 이해가 될 것입니다. 여러분의 아이디어로 게임을 더욱 재미있게 만들어 봅시다.