본문 바로가기
스크래치/스크래치 피하기

똥피하기 게임 만들기 1. 캐릭터 이동과 똥만들기

by 할거없네 2017. 11. 13.

안녕하세요. 승승이 입니다.

이번에 만들 프로젝트는 '똥 피하기 게임'입니다. , 아주아주 쉽고 간단하게 만들 수 있는 게임입니다.

사실 이렇게 쉬운 게임부터 강좌를 썼었어야 했는데 뒤늦게 강좌를 만들어 보네요. 이번 프로젝트를 따라 만들면서 게임을 만들 때의 기본적인 부분을 알 수 있을 것입니다.

먼저 똥피하기 게임을 잘 모르시는 분을 위해서 똥피하기 게임이 무엇인지 글로 설명해 볼까 합니다.



1. 위에서 똥이 무작위로 떨어짐

2. 사용자는 피함 (키보드 또는 마우스 등)

3. 시간이 지날수록 똥이 많아짐

4. 오랜 시간을 버틸수록 점수는 높아짐



이정도가 만들어야 할 규칙들입니다. 일단 스크래치에서의 주는 기능들로 구성으로 간단히 만들 것입니다. 그리고, 개선을 하거나 기능을 추가하는 방식으로 게임을 좀 더 완성도 있게 만들어야 겠습니다.



1. 유저 캐릭터 이동시키기

게임을 만들 때 저는 가장 먼저 하는 것이 유닛을 움직이게 하는 것입니다. 키보드로 할 것이냐, 마우스로 할 것이냐, 속도는 얼만큼, 중력이나 다른 가속력이 필요한지 등에 대해서 생각을 해봐야 할 것 같습니다. 똥피하기는 매우 자유롭고 재빠르게 움직이게 해야 하기 때문에 마우스로 움직이게 만들 것입니다.




먼저 유저 스프라이트를 만듭니다. 그리고 스프라이트에서 '깃발'을 누르면 초기값과 무한루프를 만들어 줍니다. 무한 루프에서 실행되는 것은 '이동'입니다.



user_init : 유저 스프라이트의 초기값을 설정합니다. 변수나 위치등의 초기값을 설정합니다.

user_move: 메인 루프에서 캐릭터가 계속해서 이동시키도록 합니다.


각각의 블록들의 값은 다음과 같습니다. 고양이의 크기를 50퍼센트로 하였고, 이동은 y-100으로 고정 후 마우스를 따라다닙니다.


위와 같이 설정을 하여 일단 유저 캐릭터가 마우스를 따라다니도록 만들어 주었습니다.



2. 똥만들기

이제 똥이 떨어지게 만들 예정입니다. 똥 스프라이트를 추가해서 만들어 봅니다.

이 똥 캐릭터는 깃발을 누르면 주기적으로 복사를 하고, 그 복사된 개체가 위에서 아래로 떨어지도록 만들 예정입니다.



Ddong_init: Ddong 초기값

Ddong_copy: Ddong를 복제하기


마찬가지로 깃발을 누르면 초기값을 설정해줄 블록을 만듭니다. 현재 건들만한 것은 크기밖에 없네요. 무한루프에서는 1초에 한번 씩 복제하도록 합니다. 나중에 난이도가 높아지면 복제가 더 빠르고 많아지게 할 것인데, 일단 뼈대를 만드는 과정으로 1초에 하나씩 만들게 해 봅니다.



원본은 숨겨서 가리게 하고 조금 작게 합니다. 복제 블록은 y좌표는 200이고, x좌표는 -240~240사이의 임의의 수로 이동 후 '나 자신을 복제하기'를 수행합니다.



복제하기가 되면 복제되었을 때 어떻게 행동하는지 설정을 해 봅니다.


Ddong_copy_init: Ddong 복제본의 초기값 설정

Ddong_move: Ddong 복제본의 이동


복제본의 초기값을 설정하고 위에서 떨어지도록 만듭니다. 초기값으로는 @복제됨 변수를 1로 놓는데, 언젠가 방송하기 등의 이벤트 발생 시 복제한 개체와 원본개체와의 분리를 위해서 복제됬는지의 여부를 가리기 위한 변수입니다.


일단 여기까지 만들면 똥이 랜덤한 위치에서 1의 속도로 잘 떨어집니다.

이제 남은 것은 똥 사라지는 조건, 맞게 하는 처리, 맞았을 떄의 처리, 점수 계산 등을 구현을 안했는데요, 이것을 어떻게 구현하는지 다음에 알아보기로 합니다.





스크립트 보기:

https://scratch.mit.edu/projects/185907257/


댓글