제어는 프로그램이 동작하는 흐름을 제어하는 것을 의미합니다. 예를들어 고양이가 계속 움직이게 한다거나, 고양이가 강아지와 부딪쳤을 때 고양이가 움직이게 한다거나 움직이는 고양이를 멈추게 하는 것을 가능하게 하는 것입니다. 즉 컴퓨터에게 반복적인 작업을 시키거나, 조건에 따라서 다른 작업을 하도록 하는 것이 제어라고 할 수 있습니다.
_초 기다리기
이 블록이 실행되면 주어진 시간만큼 실행이 일시정지 됩니다.
아래 예제는 스프라이트가 1초 간격으로 이동하게 하는 예제입니다. (스크래치에서 보기)
_번 반복하기
블럭의 안쪽에 위치하는 블록들을 10번 반복해서 실행합니다.
아래의 예제는 고양이가 4번 야옹을 반복해서 소리내게 합니다. (스크래치에서 보기)
무한 반복하기
블록 안쪽에 위치하는 블록들을 계속 실행합니다.
아래의 예제는 고양이를 계속 회전시킵니다. (스크래치에서 보기)
만약 _라면
이 블록을 이해하기 위해서는 '조건'이 무엇인가 이해해야 합니다.
아래의 블록은 틀린 블록입니다. 10은 1보다 크기 때문이죠. 이것을 '거짓'이라고 부릅니다.
아래 블록은 맞는 블록입니다. 10은 1보다 작기 때문입니다. 이런 것을 '참'이라고 부릅니다.
그럼 아래와 같이 블록들을 만들고 주어진 값이 참인지 거짓인지에 따라서 블록이 동작하는 차이를 살펴보세요.
위의 블록 중 1번은 실행 되지만 2번은 실행되지 않을 겁니다. 왜냐면 2번의 경우 '만약_라면'에 주어진 값이 거짓이기 때문입니다. 참과 거짓을 구분하는 것을 조건이라고 합니다. 그리고 그 조건에 따라서 참이라면 블록안의 블록을 실행하고, 거짓이라면 실행하지 않는 것을 조건문이라고 합니다.
아래는 조건문을 이용해서 만든 예제입니다. 고양이가 X 좌표 100에 도착했을 때 움직임을 멈추고 '야옹' 소리를 냅니다. (스크래치에서 보기)
만약_라면, 아니면
만약_라면 주어진 조건이 참일 때는 첫번째 홈의 블록이 실행되고, 거짓이면 두번째 홈의 블록이 실행됩니다.
아래 예제는 고양이가 불에 닿았을 때 뜨겁다고 말하고, 불에 닿지 않았을 때는 따뜻하다고 말하는 예제입니다. (스크래치에서 보기)
_까지 기다리기
주어진 조건이 참이 될 때까지 기다리기 입니다.
다음의 예제는 고양이가 강아지에 부딪히면 강아지가 달려가는 예제입니다.
복제되었을 때
스크래치는 스프라이트의 복제를 지원합니다. 복제란 똑같은 스프라이트를 만드는 것입니다. 복제를 하면 원본과 똑같은 모양을 가진 복제본이 생겨나는데 '복제되었을 때' 블록은 복제본이 생성되었을 때 복제본에서 실행될 명령들이 시작되는 이벤트입니다.
다음 에제는 고양이를 클릭했을 때 고양이가 복제 됩니다. 이 때 복제된 고양이는 -100부터 100 사이의 한 지점으로 이동하게 됩니다. 2초 후에 고양이는 사라집니다.
_ 복제하기
이 블록이 실행되면 선택된 스프라이트(위의 이미지에서는 myself)가 복제됩니다.