본문 바로가기
스크래치/스크래치 런

쿠키런 같은 게임 만들기 2. 함정 만들기

by 할거없네 2017. 12. 5.

이번에는 고양이가 피해야 할 장애물을 만들어 봅니다. 장애물의 모양은 여러가지가 있겠지만 일단 그리기 귀찮으니 공모양의 스프라이트로 시작해 볼까 합니다.

추가적으로 '스테이지'라는 스프라이트도 추가했는데 이것은 장애물이나 지형을 순차적으로 만들어 줄 스프라이트입니다. 현재는 장애물 만들어 주기 위한 용도로만 사용할 것입니다.


'트랩' 스프라이트는 여러 개를 사용하기 때문에 복제하여 사용됩니다.

 

트랩은 복제해서 사용하기 때문에 초기값으로는 '숨기기'와 복제된 개체와 구별하기 위한 변수를 초기값을 결정해 줍니다.

그리고 무한 반복속에서 트랩을 만들어 주는 요청을 하면 트랩의 특성을 결정해주는 지역변수 @trap_type을 결정해주고 복제하기 해줍니다.

리스트를 삭제해 줌으로써 복수의 트랩이 만들어지지 않도록 합니다.

트랩을 만드는 요인으로는 타입과 위치등이 있을 것입니다. 추후에 추가되면 리스트의 형태로 만들어 줄 예정입니다.


trap_init: 원본을 숨기고 @복제됨 변수를 0으로 초기화해줍니다.

trap_create: 조건이 만족되면 복제를 합니다. 현재 조건은 리스트의 개수가 0보다 클 때 입니다. 리스트의 추가가 곧 함정 만들기를 요청합니다. (방송하기를 쓰지 않는 방법)



복제되었을 때 트랩은 초기값에 따라서 타입과 위치(높이)가 결정이 되고 움직입니다.

그리고 삭제 조건 중 하나로 x좌표가 왼쪽에 갔을 때 사라지도록 합니다.


trap_copy_init: 복제된 개체의 초기값을 설정해줍니다. 지역변수 @복제됨 을 1로 놓고, 생성 좌표를 240으로 놓습니다.

trap_copy_move: 트랩이 왼쪽으로 계속해서 움직입니다. 현재 고정값으로 -10이지만 나중에 속도에 따라 변동될 수 있습니다.

trap_copy_delete: 트랩이 사라지는 조건을 만족하면 복제본 삭제하기가 수행됩니다. 현재 조건으로는 x좌표가 -230보다 작을 때 입니다. 즉 왼쪽 가장자리에 갔을 때 입니다.




이제 트랩에 닿으면 게임이 종료되게 만듭니다.

일단은 단순히 트랩에 닿으면 멈추기로 함으로써 간단하게 만들어 줍니다.


user_trapped: 유저가 트랩에 닿는 조건을 확인하고, 모두 멈춥니다



마지막으로 스테이지는 단순히 테스트용도로써 1초에 한번씩 트랩을 만들어 줍니다.

y0인것과 50인것으로 각각 1초에 한번씩 만들어 줌으로써 트랩에 잘 만들어 지는지 확인할 수 있습니다.

간단한 동작 수행이기 때문에 별도의 블록을 만들지 않았습니다.





스크립트 확인하기: https://scratch.mit.edu/projects/190569657/




댓글