본문 바로가기
스크래치/스크래치 기본예제

미사일 피하기 만들기 강좌

by 할거없네 2018. 8. 20.


매우 간단하고 간단한 미사일 피하기를 만들어 보겠습니다.


이번 강좌는 만드는 과정을 하나하나 설명하는 방식으로 만들어 보았습니다.


의식의 흐름대로 만들었으니 틀렸거나 이상한게 있을 수 있습니다.






먼저 스크래치를 킵니다. 아무것도 없네요.

저는 언제나 게임을 만든다고 한다면 움직이는 것부터 합니다. 움직여야 살아있는걸 느끼니까요. 물론 프로그램속 고양이는 살아있지 않습니다.



목적에 따라 어떻게 이동할지 미리 설계를 했다면 고민도 없이 이동하는 블럭을 만들어 넣었을 겁니다. 목적은 미사일 피하기인데, 마우스로 피하기가 더욱 쫄깃하니 마우스로 움직입니다.


고양이가 너무 커서 미사일에 뚜까 맞을 확률이 높으니 더불어 크기도 줄였습니다.



고양이가 작아졌네요.



이쯤이면 실행 해보고 마우스에 따라 움직이는지 테스트도 한번 합니다.

안움직이는 것은 움짤이 아니라 일반 캡쳐jpg이기 때문입니다.




이제 고양이를 잡으려는 미사일을 생성합니다. 모양은 동그란 점정도로 만듭니다.







미사일이 하는 일은 '복제하기' 입니다. 초록 깃발을 누르면 무한이 점을 복제합니다.

여기서 변수 '@복제하기'를 만들어주었는데 사실 여기서는 쓸모 없는 변수입니다.

이 변수는 복제된 개체인지, 메인 개체인지 구분하기 위한 용도로 쓰입니다. 언젠가 방송하기를 하게 될 경우 반드시 구분하기 위한 변수입니다.




일단 복제하면 무한루프를 만들어서 어떻게 행동할지 생각해 봅시다.

calculating...

미사일이 고양이한테 가면 되겠군요!



지역변수로 @x속도, @y속도를 만들어 주고, 미사일이 생성되면 해당 속도로 움직이도록 합니다. 벽에 닿으면 복제본을 삭제해주는것도 잊지 마시구요.




다음은 미사일이 생성될 장소를 랜덤하게 만들어줄 차례입니다.

위와 같이 4개의 조건문을 하나하나 쌓은 다음에...




됬다 싶으면 옮바른 위치로 놓아줍니다.




@탄생위치 라는 변수가 랜덤하게 1~4로 정해지면, 이 값에 따라서 각각의 끝에서 위치하게 된 후 복제 생성되도록 합니다.




다음은 복제된 미사일이 속도를 정해주도록 식을 세웁니다.

calculating....


미사일이 고양이한테 가기 위해서는 그 거리의 차이만큼을 이동시켜줍니다.

고양이의 위치-자신의 위치 가 그 값이 됩니다.




물론 차이만큼 한번에 가면 바로 고양이로 순간이동하기 때문에 적당한 값으로 나눠줍니다. 위와 같은 식이라면 속도가 1일 경우 10번만에 고양이에게 도달하도록 되어 있는 것입니다.



네... 너무 빠르네요.

적당하게 값을 조절해서 속도를 낮춰주기로 했습니다.

Success!!



그런데.. 고양이가 미사일을 맞아도 안듀금

~에 닿았는가 블록을 사용하면 아주 쉽습니다.





다음은 레벨 조정입니다.

스코어에 따라서 속도를 변화시켜줍니다.

결과: 속도1에서 2로, +1이 되는 거지만 사실상 속도가 2배됨...
이와 같은 문제를 해결하기 위한 방법은...?

Calculating...



보정을 해서 10에서 5씩 추가하는 식으로 속도 조절을 조금 낮추었습니다.




Success!





하러가기::

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


'스크래치 > 스크래치 기본예제' 카테고리의 다른 글

1. 행렬에서 배수 지우기  (0) 2018.06.12

댓글