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

똥피하기 게임 만들기 4. 아이템 만들기(끝)

by 할거없네 2017. 11. 25.

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

똥피하기의 마지막으로 아이템을 만들어 보겠습니다.

아이템은 몇초에 한번씩 떨어지게 하고, 그 아이템을 먹으면 좋은 효과를 발생하도록 하는 것으로 만들 예정입니다.

그래서 생각해봐야 할 것은 아이템을 먹으면 어떤 효과를 나게 할 것인지 정리해봐야 하는데요, 일단 생각해 둔 기능들은 다음과 같습니다.


1. 멈추기

2. 속도 느려지게 하기

3. 모두 사라지기

4. 똥을 모두 작아지게하기


4가지정도면 적당할 것 같네요. 그 외의 복잡한 기능들에 대한 아이디어가 있다면 한번 만들어 보는 것도 좋습니다.

이제 아이템을 만들어 보는데, 스프라이트를 새로 만들어서 아이템으로 정하도록 합니다.



아이템은 게임이 시작하면 주기적으로 '복제하기'를 통해 만들어 냅니다.




메인 함수들은 위와 같습니다.


item_init: 아이템 스프라이트에서 사용될 여러가지 변수나 값들의 초기값을 위한 블록입니다.

루프: 0.1초에 한번씩 돌게 되어 있으며, 아이템을 만들어내거나, 만들어진 아이템 효과를 정해진 시간 후 없애줍니다.

item_create: 아이템을 주기적으로 만듭니다. 4초에 한번씩 만들어 내도록 되어 있으며, @item 변수가 40이면 만들어 내고 0으로 바꿉니다.

item_life: 아이템 효과가 발동하면 주어진 시간 후에 사라지도록 합니다. 각각의 아이템이 가진 수명은 0.1초마다 0.1씩 사라져서 0이되면 효과가 없어집니다.




다음은 아이템이 복제되었을 때의 스크립트입니다.


item_copy_init: 복제된 스프라이트들의 초기값을 설정합니다. 아이템이 맨 위에서 랜덤하게 발생하도록 하며, 아이템의 타입을 랜덤으로 결정합니다.

루프: 루프가 돌때마다 아이템은 아래로 이동하며, 캐릭터와 닿는지 또는 사라져야 하는지 조건을 확인합니다.

item_delete: 아이템 삭제 조건을 확인합니다. 현재는 아이템이 맨 아래에 있는가 따집니다.

item_move: 아이템이 이동합니다. 값에 따라 속도가 달라집니다.

item_event: 아이템이 발동 조건을 알아내고, 발동할 경우 아이템의 타입에 따라서 각각의 효과 변수들을 정해줍니다. 그리고 아이템효과를 정해주었으므로 삭제해줍니다.





아이템 효과들은 대부분 몬스터의 스프라이트 안 스크립트를 수정하여 만듭니다.



아이템 구현이동부분에서 멈추기가 1이상이면 이동하지 않도록 합니다, 1이하일 경우에만 이동하도록 하였습니다.

아이템2구현이동하는 조건 하에서 느려지기 변수가 0보다 크게 되면 이동하는 수치가 반으로 됩니다만약에 0보다 크면 이동 수치 그대로 이동합니다.


아이템 구현이동부분에서 멈추기가 1이상이면 이동하지 않도록 합니다, 1이하일 경우에만 이동하도록 하였습니다.

아이템2구현이동하는 조건 하에서 느려지기 변수가 0보다 크게 되면 이동하는 수치가 반으로 됩니다만약에 0보다 크면 이동 수치 그대로 이동합니다.



아이템 4구현: 아이템4는 크기를 작게 만들어 주는 효과입니다. 크기를 결정하는 블록을 하나 만들어서 추가 합니다. 아이템4 변수가 0이면 크기는 @scale변수대로 결정하고, 0이 아닌 수라면 반으로 줄어들게 만들어 줍니다.




이것으로 똥만들기 프로젝트는 완료입니다.

만드는 과정을 간략하게 정리하자면

1. 똥이 떨어지기

2. 똥에 닿으면 게임오버, 아니면 점수 쌓기

3. 난이도 올라가기

4. 아이템 만들어주기

순서대로 만들어 주었습니다. 게임의 기본적인 구상대로 차근차근 만들어 나가면 좋은 게임을 만들어갈 수 있습니다.

다음에는 좀 더 재밌는 게임만들기 강좌를 생각해 볼까 합니다.

감사합니다.


스크립트보기:

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




댓글