본문 바로가기
어린이 코딩/스크래치 응용

[스크래치] 유령 물풍선으로 잡기 게임 만들기

by [바가지] 2017. 9. 21.
반응형

게임제작으로 배우는 스크래치 코딩

유령 잡기 게임

 


오랫만에 스크래치 코딩 부분을 올려 봅니다. 적어도 1주일에 한번은 스크래치 코딩에 대하여 포스팅 하고자 하는데 바빠서 잘 안되네요

이번시간에는 쥐를 조정하여 유령 잡기(풍선으로) 게임을 만들어 보면서 스크래치 코딩법에 대하여 알아보고자 합니다

 

■ 게임소개

제목 그대로 쥐로 조정을 하여, 유령을 물풍선으로 맞추는 게임입니다

쥐를 키보드의 방향키를 이용하여 움직임을 제어하는 부분, 스페이스 키를 클릭 했을 때 물풍선이 날라가는 부분, 그리고 유령을 맞췄을 경우 점수가 올라가고 유령과 풍선이 사라지게 하는 부분 이 세가지 부분을 코딩하게 되면 게임이 완성 되겠습니다.

 

■ 게임체험

먼저 게임을 한번 체험 해 보고 코딩 부분을 보도록 하겠습니다.

 

 

■ 코딩학습

이제 코딩방법에 대하여 알아보도록 하겠습니다.

이런 게임을 만들어 보아야 겠다라고 생각하고, 구현을 하면서 가장 고민 되었던 부분은, 풍선을 던지는 방향이였습니다.

가로 세로 방향만 있다면 쉬운데 각 다른 각도마다 그 방향으로 던져지기 위해 어떻게 구현해야 될까 였습니다.

그리고 생각한 방법 아래 내용에서 확인 해 보세요. 

 

쥐의 움직임을 줄려고 생각했었는데, 깜박했습니다.

먼저 쥐를 키보드 방향키를 이용하여 움직이게 하는 부분입니다.

 

모양에서 쥐를 선택하고, 이벤트 스크립트에서 에서 [클릭했으 때] 블록을 이동시킵니다

 

스코어를 위해서 데이터 스크립트에서 변수 만들기를 통해 [점수] 라는 전역변수(모든 스프라이트에서 사용가능 한 변수)를 선언하고, 값을 0으로 설정하였습니다

 

제어 스크립트에서 [무한반복] 블록을 이동합니다.

 

그리고 [쥐방향] 이라는 전역변수를 하나 더 설정하여, 동작 스크립트의 [방향] 값으로 설정 항였습니다.

이 부분은 풍선을 발사할 경우, 발사 방향을 설정 하기 위함입니다.

 

이제 방향 코딩이네요. 만약 각각의 방향키를 눌렀을 경우 그 방향으로 5만큼 이동하도록 하였습니다

 

여기까지 쥐 스프라이트 내의 기능 코딩 부분이였습니다.

 

화면1

 

다음은 풍선이 날라가는 기능입니다

 

스트라이트를 하나 추가 해 줍니다 클릭했을 때 무한반복하기를 구현해 줍니다.

앞에서 설명을 드렸던 부분이라 빠르게 진행 하도록 하겠습니다.

 

만약 스페이스를 눌렀을때 실행 하도록 합니다.

가장 먼저 물풍선 위치가 쥐 위치로 이동 해야 겠죠. 쥐가 던지는 물풍선이니까요.

그리고 제어 스크립트에서 [나 자신 복제하기] 블로글 이동합니다. 0.3초 기다리기를 설정합니다.

0.3초 간격을 안주고해보면 왜 주었는지 알게 될 것입니다.

그리고 복제되었을 때 풍선이 보이도록 합니다.

 

여기서 중요합니다. 바로 앞에서 선언해 놓은 쥐방향 값을 이용하여 풍선이 동일한 방향을 바라보도록 하는 것입니다. 그래야 쥐가 보는 방향으로 풍선이 날아가기 때문입니다.

 

그리고 벽 또는 유령들에 닿았는지 확인을 하고, 닿기까지 풍선이 10만큼 이동을 합니다. 즉, 쭉 날라가셌죠 닿기까지는요 그리고 만약 닿게 되면 반복문을 빠져나오고 물풍선을 숨기도록 합니다.

여기까지 풍선 던지기 기능구현 이였습니다 

 

화면2

 

이제 마지막 구현 부분입니다

 

유령 구현 부분입니다.

 

유령이 보이고/안보이고를 설정하는 변수를 설정합니다. 이변수는 전 스프라이트에서 사용하지 않기 때문에 전역변수로 설정 하지 않습니다.

설정값이 N이라면 [랜덤난수] 블록을 이용하여 X, Y좌표를 구하여 화면에 나타나게 합니다.

 

만약, 물풍선이 닿았다면 점수를 1올리고 유령은 사라집니다. 그리고 몇초 후 다시 나타나도록 구현한 부분입니다.

유령은 3개의 스프라이트를 만들어 다시 나타나는 시간 및 맞췄을 경우 점수를 달리하여 설정 하였습니다.

 

화면3

 

여기까지 스크래치 코딩으로 쥐가 물풍선을 던져 유령 잡기 게임을 만들어 보았습니다.

아직 기능이 많이 부족합니다.

보는 분들이 많다면 다음번에는 추가 기능을 포스팅 해 보도록 하겠습니다. 별로 없다면 또 다른 게임등을 포스팅 해 보도록 하겠습니다.

 

너무 서술식으로 설명을 드린것이 아닌지 모르겠네요. 댓글 남겨 주시면 제시해주신 방향, 방법으로 설명을 드리도록 해 보겠습니다.

 

그럼 여기까지 게임으로 배우는 스크래치 코딩이였습니다

반응형