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

[스크래치] 게임 만들기 - 물풍선 게임 두번째 시간

by [바가지] 2017. 10. 6.
반응형

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

물풍선 게임

 

게임 제목을 물풍선 게임으로 변경 해 보았습니다. 쥐를 조정하며 물풍선을 발사하여 유령을 많이 맞추는 게임입니다. 지난 포스팅에서의 제목은 '유령 물풍선으로 잡기'였습니다.

지난 포스팅에서는 유령이 움직이지 않고 나타났다가 물풍선에 맞으면 점수가 올라가고 사라지도록 하였습니다.

이번 포스팅에서는 한단계 업그레이드 하여 유령이 움직이도록 하였습니다. 그리고 한가지 더 유령도 물풍선을 발사하여 쥐를 공격할 수 있도록 해 보았습니다.

 

먼저 어떤 게임인지 한번 해 보고 코딩 설명을 드리도록 하겠습니다. 방향키로 조정하여, 유령이 나타나면 스페이트 키로 맞추면 됩니다.

 

 

이전 포스팅을 보지 않은 분들이라면, 먼저 이전 포스팅을 읽어 보실 것을 부탁 드립니다.

이전 내용들은 이 글에서 다루지 않을 것이기 때문입니다.

이번에 추가 된 스프라이트는 [유령1풍선] 입니다. 유령1, 유령2, 유령3 까지 있지만 유령1에만 풍선을 발사하는 기능을 추가 해 볼 것입니다. 유령1은 풍선을 쏠때 4발이 연속해서 발사되기 때문에 모두 맞으면 -4점이 되겠습니다. 몇초기다리기 블록을 추가하지 않으면, 이러한 현상이 생깁니다.

 

스프라이트

 

그럼 코딩에 들어가 보도록 하겠습니다.

먼저, 유령1이 과연 언제 물풍선을 발사할 것인지를 정해야 됩니다.

저는 유령1의 움직임의 횟수를 가지고, 풍선을 발사할 것인지를 판단하도록 하였습니다.

즉, 유령이 화면에 나타나고 0.1초에 한번씩 1만큼 움직이는데, 이 움직임 횟수가 20이 될 때 쥐를 바라보고 물풍선을 발사하게 하였습니다.

그렇기 때문에 이 게임을 하는 분들은 유령1이 나타났을때 가장 먼저 맞추는 것이 게임 점수를 높이는데 유리 할 것입니다(감점이 발생하지 않도록 하는 것이 고득점을 위한 하나의 방법이기 때문입니다)

 

아래 코딩블록을 보도록 하겠습니다.

이전 포스팅에서 작성하였던 유령1 코딩 내용입니다. 추가 된 부분이 있는데 [움직이기] 부분입니다. 이 부분은 스크립트에서 [추가 블록] 기능입니다.

 

※ 스크립트 → [추가 블록] : 스크래치에서 스크립트 기능 중 [추가 블록]이라는 기능이 제공됩니다.

   이 기능은 지속적으로 사용 될 기능들을 별도의 블록그룹으로 만들어서 사용하는 것이라고 생각하시면 됩니다.

   흔히 함수라고 합니다.

 

이 게임에서 제가 추가한 [움직이기] 블록그룹의 역할은 유령1이 화면에 나타나있을 경우, 1만큼 쥐방향으로 움직이는 것과 풍선을 발사하는 시점을 알기위해 유령1풍선쏘기Cnt 값을 1씩 증가 시키는 것입니다. 

 

유령1 코딩유령1 움직이기 코딩

 

다음은 유령1풍선 스프라이트 내용입니다.

만약, 유령1풍선쏘기Cnt 값이 20이 된다면 풍선을 쥐가 있는 방향으로 발사하는 코딩 부분입니다.

스페이스를 눌렀을 경우 쥐가 풍선을 발사하는 코딩과 거의 비슷합니다.

물풍선을 발사하고 나면 유령1풍선쏘기Cnt 값을 0으로 초기화하여, 다시 유령1의 움직임 횟수가 20회가 될때가지 기다리도록 하였습니다. 그리고 만약 유령1이 쏘는 물풍선에 맞았다면 점수가 1점씩 차감되도록 하였습니다.

 

물풍선코딩점수변경기능

이렇게 하여 추가 된 부분들을 모두 알아 보았습니다.

아직 추가해야 될 기능들이 많이 보입니다.

게임을 종료하기 위한 조건을 추가 해 보는 것도 좋아 보입니다. 예를 들어 게임 시간을 3분으로 정해 놓는다거나, 5점을 획득하였을 경우 게임을 종료하게 하는 방법 등이 있을 것입니다.

쥐, 유령 각각 하나씩을 만들어 두명이 전투를 벌이는 방식으로 만들어 보아도 좋겠습니다.

 

다음 포스팅에서는 위와같이 수정 또는 개선을 해보거나, 다른 게임을 통해 스크래치 코딩을 배워보거나 하도록 하겠습니다. 어떻게 포스팅을 하게 될지는 저도 모르겠습니다.

포스팅하는 그 시간 즉흥적으로 코딩을 하는 것인지라

 

그럼 여기까지 스크래치 게임만들기 이번 포스팅을 마무리 하도록 하겠습니다/ 

 

 

 

 

반응형