스크래치를 이용하여 아주 간단한 게임을 작성하고 테스트 해보겠습니다.
이번 게임을 만들기 위해서는 스프라이트를 제어하는 스크립트만 있으면 구현이 가능합니다.
관련한 내용으로는 ‘스크래치 샘플 스크립트 – 스프라이트 제어1’ 포스트를 참고하면 되겠습니다.
점 피하기 게임
설명
여러 개의 점들이 마우스를 지속적으로 따라오며 비행기(네모)는 마우스를 움직여가며 따라오는 점들을 피하고 오랜 시간 동안 살아남으면 됩니다.
Step 1. 스프라이트 만들기 (네모와 점)
우선 스크래치에서 기본적인 고양이 스프라이트를 삭제하고 네모(노란색)와 점(검정색)을 생성합니다.
스프라이를 그리기로 도형을 만들 경우 편집 도구에서 도형의 중심을 잘 맞추어 주어야 합니다.
도형의 중심을 맞추는 기능은 편집창에서 오른쪽 위에 ‘+’ 모양이고 중심이 맞지 않을 경우 특히 ‘벽에 닿으면 튕기기’를 할 때 이상한 방향 혹은 이상한 동작을 합니다.
이제 기본적인 도형 스프라이트가 준비되었기 때문에 동작을 코딩해 보겠습니다.
Step 2. 비행기(네모)를 마우스를 따라 움직이기
이제부터 ‘네모’를 비행기로 가정하겠습니다.
이 비행기는 우리가 조작해야 하는 것으로 키보드 혹은 마우스의 이벤트에 따라 움직이게 코딩할 수 있겠습니다.
우선 이 게임에서는 쉬운 움직임을 위하여 마우스로 비행기를 조작할 수 있도록 코딩하고 테스트 해보겠습니다.
코딩은 비행기(네모) 스프라이트에서 블록 명령어를 이용하여 코딩해야 합니다.
스크립트는 아래와 같습니다.
[비행기 스프라이트의 스크립트]
ㅇ 스페이스 키를 눌렀을 때 동작을 합니다.
ㅇ 비행기(네모) 스프라이트는 무한 반복 적으로 마우스 포인터 위치로 이동합니다.
Step 3. 랜덤으로 움직이는 점 만들기
이제 점이 랜덤으로 결과창에서 움직이도록 코딩하고 테스트 해보겠습니다.
아래 스크립트는 점에 대한 스크립트 입니다.
[점 스프라이트의 스크립트]
ㅇ 스페이스 키를 눌렀을 때 스크립트가 동작합니다.
ㅇ move 변수를 만듭니다. (move 변수는 점의 이동 속도를 랜덤으로 정하기 위하여 사용합니다.)
ㅇ move 변수를 5~20 사이의 난수로 정합니다.
ㅇ 무한 반복하기 블록을 사용하여 다음 행동을 반복하게 합니다.
ㅇ 점을 move 만큼 움직이게 합니다.
ㅇ 조건문을 사용하여 점이 벽에 닿았는지를 판단하고
ㅇ 벽에 닿았을 경우 비행기 방향을 바라보고
ㅇ 5~20 사이의 난수로 이동 속도를 정하여 움직입니다.
위 스크립트와 같이 코딩을 하면 비행기를 마우스로 움직이면 점이 벽에 닿을 때마다 따라오는 효과를 확인 할 수 있습니다.
Step 4. 비행기와 점이 만났을 때 게임을 종료하기
여기까지 네오와 점을 이용하여 점은 계속적으로 비행기를 따라오고 비행기는 마우스를 움직여서 피해다녀야 하는 게임을 간단히 만들 수 있습니다.
이제 비행기가 점을 만났을 때 게임을 종료되도록 모든 움직임을 멈추도록 코딩하고 테스트 해보겠습니다.
코딩 방법으로는 점이 비행기를 만났을 때 모든 동작을 멈추게 하면 됩니다.
Step 3의 점 스크립트는 유지한 상태에서 아래 스크립트를 추가하는 것입니다.
[점 스프라이트의 스크립트]
ㅇ 스페이스 키를 눌렀을 때 스크립트가 동작합니다.
ㅇ 무한 반복하는 블록을 사용하여 아래 스크립트를 반복하게 합니다.
ㅇ 조건문을 사용하여 무한하게 점이 비행기에 닿았는지를 판단합니다.
ㅇ 만약 점이 비행기에 닿았다면 점의 동작은 모두 멈추게 됩니다.
Step 5. 점수 계산하기
이제 기본적인 스크립트는 모두 만들었으며 점수를 계산하도록 코딩해 보겠습니다.
스크립트는 아래와 같고 비행기 스프라이트에서 코딩을 하였습니다.
[비행기 스프라이트의 스크립트]
ㅇ 스페이스 키를 눌렀을 때 스크립트가 동작합니다.
ㅇ score 라는 변수를 하나 생성합니다.
ㅇ score 변수를 0으로 정합니다. (초기화 합니다.)
ㅇ 무한 반복하기 블록을 이용하여 1초 마다 score를 1만큼 증가하게 합니다.
(score는 시계와 같은 효과를 주며 몇초 만큼 점을 잘 피했는지 점수화 하게 됩니다.)
Step 6. 여러개의 점이 비행기를 따라오도록 하기
이제 게임을 좀 더 어렵고 재미있게 하기 위하여 하나의 점이 아닌 여러개의 점을 생성하여 게임을 테스트 해보겠습니다.
이 부부은 별도의 코딩은 필요없고 이미 만든 점을 이용하면 됩니다.
위의 그림과 같이 우리가 코딩한 ‘점 스프라이트’를 복사하면 됩니다.
복사하는 방법은 ‘점 스프라이트’에서 마우스 오른쪽 버튼을 누르면 ‘복사’ 메뉴가 있고 클릭하면 1개의 ‘점 스프라이트’가 생성됩니다.
이렇게 20개의 ‘점 스프라이트’를 복사하면 1개의 점을 피하는 것보다 좀 더 어렵고 재미있게 게임을 만들 수 있겠습니다.
[전체 Script]
ㅇ 비행기 스프라이트의 스크립트
ㅇ 점 스프라이트의 스크립트