상세 컨텐츠

본문 제목

스크래치 프로그래밍: 동작/형태/제어/이벤트 기초 활용

프로그래밍/스크래치

by 삶의 재발견 2014. 2. 20. 08:42

본문

반응형

스크래치 2.0 오프라인 에디터를 실행하면 다음과 같은 창이 나타납니다. 우측화면 무대에 고양이 한마리가 있는데, 이 스프라이트(Sprite)를 이용해서 간단하게 이벤트, 동작, 형태, 제어를 이용한 프로그램을 작성해보도록 하겠습니다.




■ 예제 프로그램 개요


이번에 작성할 프로그램은 무대에 있는 정적으로 서있는 고양이를 프로그램을 통해서 반복해서 좌우로 걸어가게 만드는 것입니다.



■ 예제 프로그램 작성


를 클릭할 때마다, 스프라이트 스크립트가 동작을 하게 하기 위해서, 제어블럭의 "클릭했을 때"를 선택해서 우측 스크립트 창에 옮겨 놓습니다.



고양이를 움직이게 하기 위해서 동작블럭 중 하나인 "10만큼 움직이기"를 우측영역으로 옮겨 "클릭했을 때"와 결합을 합니다.



를 클릭하면 고양이가 우측으로 조금 이동을 할 것입니다.


이번에는 고양이가 이동할 때마다, 모양을 조금씩 바꿔서 보다 자연스럽게 이동할 수 있도록 해보겠습니다. 


"모양"에가서 보면 고양이 그림이 2개가 있습니다. 하나의 스프라이트 내에 여러 개 모양이 있을 수 있으며, 프로그램을 통해서 모양들을 변경할 수 있습니다.



모양블럭 중 하나인 "다음 모양으로 바꾸기"를 옮겨 기존 블럭들과 결합 합니다. 



이제 를 클릭하면 고양이가 우측으로 조금 이동하면서 고양이 모양이 걸어가는 것과 같이 바뀌게 됩니다.


고양이를 움직이게 할 려면 계속 를 클릭해야 하므로,  클릭없이 자동으로 움직이게 변경해 보겠습니다. 자동으로 반복작업을 수행하는 부분은 제어블럭에서 "무한 반복하기"입니다. 이를 가져다 아래 그림과 같이 재배치 합니다. 결합된 블럭들을 분리하려면 아래에 있는 블럭을 마우스로 잡아서 분리하면 쉽게 됩니다.
 


이제 를 클릭하면 고양이가 계속 우측으로 이동하게 됩니다. 벽에 닿아도 계속 직진(?)을 하는 직진 본능을 가지고 있습니다. 


벽을 만나면, 다시 돌아가도록 하려면 동장블럭 중 "벽에 닿으면 튕기기"를 이용하면 됩니다.



벽에서 튕기기는 하지만, 모양이 이상하게 됩니다. 이를 해결하려면, 형태블럭에서 "회전방식을 왼쪽에서 오른쪽으로 정하기"를 아래 그림처럼 결합시키면 됩니다. 이 블럭을 무한 반복에 넣어도 되지만, 한 번만 실행해되 되는 블럭을 무한 반복을 통해 계속 실행하게 하는 것은 비효율적이므로 위에 한 번만 실행될 수 있도록 배치하였습니다.



좀 더 부드러운 동작을 위해서는 무한 반복 블럭 사이에 제어에 있는 "1초 기다리기"를 추가하면 됩니다. 시간을 조절하면 이동하는 속도를 조절할 수 있습니다.



■ 프로그램 응용하기


1. 고양이가 걸어갈 때 마다 소리를 내게 하려면 어떻게 해야할까요?  힌트는 "소리" 블럭을 이용하면 됩니다.


2. "s"를 눌렀을 때, 고양이가 움직이고 시작하고, "스페이스"를 불렀을 때 멈추게 하려면 어떻게 해야 할까요?


3. 화살표(↑ ↓)를 눌렀을 때, 고양이의 위치가 상하로 움직이게 하려면 어떻게 해야 할까요?

반응형

관련글 더보기