동작블럭 프로젝트

스크래치의 동작 블럭을 이용하여 만들 프로그램은 플레이어가 키보드 화살표 방향키를 사용하여 가능한 한 많은 황금주머니를 수집하여 스프라이트를 이동하는 간단한 게임이다. 황금 주머니는 그리드의 임의의 위치에 나타난다. 플레이어가 3초 안에 황금주머니를 잡지 않으면 다른 곳으로 이동한다.


프로젝트를 완성하기 위한 무대 배경과 Player, 황금주머니 스프라이트는 다음 파일에 제공한다. 스크립트를 작성하여 프로그램을 완성하면 된다.


Money_NoCode.sb2


먼저 Player 스프라이트를 살펴보겠다. 게임이 시작됐을때 즉 녹색 깃발을 클릭했을때 플레이어는 시작 위치에 이동해야한다. 시작위치는 아무곳이나 정하면 되는데 무대 배경의 그리드 상자 내부에 Player 스프라이트가 위치 할 수 있도록 정해준다.


스크래치의 무대 사이즈는 가로 480, 세로 360 이다. 제공된 파일에 무대는 가로 8, 세로 6개의 상자로 되어있다. 따라서 상자의 하나의 크기는 가로 60, 세로 60 이다. 이것을 고려하여 처음 위치를 정해주면 된다.


시작 위치는 \((-30, -30)\)으로 정하고 '90도 방향 보기’를 한다. 그리고 4개의 방향키에 반응하는 스크립트를 완성한다. 방향키를 누르면 스프라이트의 방향을 변경하고 사운드 짧은 사운드를 재생한 다음 스프라이트를 60만큼 이동한다. 스프라이트가 무대의 가장자리에서는 튕기게한다. 무대 배경의 60은 1칸에 해당하므로 화살표 키를 누를 때마다 Player 스프라이트는 1칸 이동한다.



이제 황금주머니 스프라이트 스크립트를 작성해 보겠다. 녹색 깃발을 클릭했을때 '점수를 0으로 정하기’하고 황금주머니 스프라이트 임의의 위치에 나타나게 한다. 위에서 살펴보았듯이 황금주머니는 가로 8개, 세로 6개의 상자안에 위치해야 한다.


이렇게 위치하기 위한 스프라이트의 \(x\) 좌표 위치는 \(-210, -150, -90, -30, 30, 90, 150, 210\) 이다. 모든 좌표에 \(210\)을 더하면 좌표는 \(0, 60, 120, 180, 240, 300, 360, 420\)이 된다. 이것을 다시 \(60\) 으로 나누면, \(0, 1, 2, 3, 4, 5, 6, 7\) 이다. 따라서 연산블럭에 ‘~에서 ~사이의 난수’ 명령을 이용하여 ‘0 ~ 7’ 사이의 임의의 수를 하나 생성하여, 연산블럭의 명령을 사용하여 \(x\) 좌표 \(-210, -150, -90, -30, 30, 90, 150, 210\) 를 만들수 있다.


\(y\) 좌표의 위치는 \(-150, -90, -30, 30, 90, 150\) 이다. 각 좌표에 150을 더한후 60으로 나누면 \(0, 1, 2, 3, 4, 5\) 이다. 따라서 연산블럭에 ‘~에서 ~사이의 난수’ 명령을 이용하여 ‘0 ~ 5’ 사이의 임의의 수를 하나 생성하여, 연산블럭의 명령을 사용하여 \(y\) 좌표 \(-150, -90, -30, 30, 90, 150\)을 만들수 있다.


이렇게 하여 황금주머니를 가로 8개, 세로 6개 총 48개의 상자중 하나에 위치할 수 있다. 상자가 위치하게 되면 Player 스프라이트가 3초내에 황금주머니를 잡아야 한다. 만약 3초내에 황금주머니를 잡는다면 ‘WaterDrop’ 사운드를 재생시키고 '점수를 1만큼 바꾼다’를 실행한다. 3초내 황금주머니를 잡지 못한다면 다시 황금주머니를 새로운 위치로 이동시키면 된다. 이것을 20번 반복한다.



동작블럭 프로젝트 동영상



반응형