스크래치를 이용한 스크래치 코딩을 잘하기 위해서는 먼저 블록 리스트에 있는 명령 블록 들이 어떤 것 들이 있는지 익히는 것이 좋습니다.
각각의 명령 팔레트(동작, 형태, 소리, 이벤트..)에 어떤 명령 블록(~만큼 움직이기, 다음 모양으로 바꾸기..)들이 있는지 한번씩 보는 것을 추천 해요.
물론 코딩 공부를 하다보면 자연스럽게 익히게 되겠지만 먼저 봐두면 더 빠르게 익힐 수 있을 거에요.
명령 블록들을 보다보면 각각의 블록들의 모양이 비슷한것도 있고 약간 다른 것들이 있을거에요.
명령 블록 모양 설명
아래와 같은 모양의 블록은 시작 위치에 오는 블록이에요.
이런 블록들은 이 블록의 위에 다른 블록을 붙일수 없어요. 시작을 하거나 외부 신호(클릭, 키눌림...등) 받았을 경우 사용되는 블록 이에요
아래 모양으로 된 블록은 위에 다른 블록과 연결이 가능한 블록이에요.
예) 시작하기 클릭했을 때 블록
다른 블록을 해당 블록 위에 연결이 가능하다는 뜻인데요
아래 모양의 블록과 연결이 가능 해요
예) 블록 연결
그 외에 아래와 같은 모양의 블록 들이 있는데 아래와 같은 블록들은 단독으로 또는 블록과 연결하여 사용은 할 수 없고 어떤 계산, 조건들을 알려주는 블록들이에요.
이제 간단한 스크래치 코딩을 하면서 블록의 사용 방법을 알아 볼게요.
이번 시간에 만들어볼 스크래치 코딩은 고양이 스프라이트가 마우스 포인터를 잡으로 따라오는걸 만들 거에요.
쉽게 설명한다고 추가 적인 설명도 적어 놓았지만 꼭 설명을 이해 하지 않고 그냥 따라 해보는것도 좋아요. 설명은 지금은 모르더라도 앞으로 코딩을 공부 하다보면 이해가 될거에요.
스크래치 아이콘을 더블클릭(실행) 할게요.
스크래치는 기본적으로 스프라이트를 기준으로 작동 합니다. 각각의 스프라이트에 대해 명령블록으로 코딩을 하여서 동작 시키는 거죠
예를 들어 무대에 두개의 스프라이트가 존재 하고 두 스프라이트가 모두 움직이게 하고 싶다면 두 스프라이트에 각각 움직이도록 명령 블록을 이용해 코딩을 해야 합니다.
일단 고양이 스프라이트와 배경 이 필요 해요.
고양이 스프라이트는 스크래치를 실행하면 기본적으로 나오는 스프라이트를 사용 할거에요.
배경은 스크래치 화면의 오른쪽 아래 배경 고르기에 마우스를 올리면
아래와 같이 모양이 바뀌게 되는데 그냥 클릭을 하면 배경 고르기 화면을 바뀌게 될거에요.
배경 고르기 화면
우리가 사용할 배경은 'Galaxy' 에요 스크롤을 내려서 선택해도 되고 검색에 Galaxy 라고 입력 해도 되요
배경을 선택하면 무대가 다음과 같이 바뀔거에요
이제 저 고양이 스프라이트에게 마우스를 포인터를 따라다니 다가 마우스 포인터에 닿으면 '잡았다'라고 말하게 할거에요.
먼저 순서 대로 어떤 일을 해야 하는지 알아 볼게요
1. '시작 하기'를 클릭하면
2. 고양이 스프라이트를 무대의 중앙으로 이동 하기
3. 고양이 스프라이트가 '이제 잡으로 간다'를 2초간 말하기.
4. 고양이 스프라이트가 마우스 포인터를 계속 바라보게 하기.
5. 고양이 스프라이트가 마우스 포인터 쪽으로 계속 움직이게 하기.
6. 고양이 스프라이트가 마우스 포인터와 닿으면
7. 고양이 스프라이트가 '잡았다!!!' 라고 2초간 말하기.
8. 고양이 스프라이트가 멈추기.
스크래치의 시작은 '시작하기'버튼을 클릭 하면서 시작이 됩니다.
시작하기 버튼이 클릭 되었음을 확인하는 명령 블록이 '시작버튼 클릭했을 때'
입니다. 스크래치의 처음 시작은 항상 위의 명령 블록으로 부터 시작됩니다
'시작버튼 클릭했을 때'는 팔레트 목록의 '이벤트' 에 있습니다 이벤트 팔레트를 클릭해 보세요.
'시작버튼 클릭했을 때'를 드래그 해서 코드 창으로 옮겨 주세요.
이것으로 첫번째 작업인 1. '시작하기'를 클릭하면 를 완료했어요.
고양이 스프라이트를 무대의 중앙으로 이동 시키기 위해서는
팔레트 목록의 '동작' 을 클릭 해서 (으)로 이동하기 명령 블록이 필요 합니다.
해당 블록을 드래그 하여서 시작하기 클릭했을 때 아래 쪽에 붙여 주세요.
그리고 x: , y: 의 숫자 부분을 클릭하여서 선택하여 지운 다음 숫자 0으로 바꿔 주세요.
(x 와 y 는 좌표의 값을 지정하고 있는데 좌표는 나중에 자세히 설명할게요.)
이것으로 2. 고양이 스프라이트를 무대의 중앙으로 이동 하기 도 완료 하였어요.
다음은 3. 고양이 스프라이트가 '이제 잡으로 간다'를 2초간 말하기 를 해볼게요.
고양이 스프라이트가 말을 하게 하기 위헤서는 모양이나 크기 조정 같은 형태 관련 명령 블록이 모여 있는 "형태"팔래트를 선택하면 '안녕!을(를) 2초 동안 말하기' 명령 블록을 이용하면 되요.
조금 전과 같이 해당 명령 블록을 드래그 해서 코드 창으로 옮겨서 아래 쪽에 붙여 주세요.
우리는 '안녕!' 이 아닌 '이제 잡으로 간다' 를 말해야하니까 안녕!을 클릭해서 선택한 후 지우고 '이제 잡으로 간다'로 입력해 주세요. 뒤에 있는 초도 2가 아니라면 2로 바꿔 주세요.
*스크래치 코딩을 하는 중간 중간 시작하기 버튼을 클릭 하면서 만들고 있는 내용을 작동해 볼 수 있어요.
한가지 주의 할점이 있어요.
바로 "계속 바라고게" 의 '계속' 이라는 단어 인데요 '계속' 무었인가를 한다는 것은 반복을 한다는 뜻이에요.
기본적으로 명령 블록은 하나만 가져다놓으면 한번만 실행이 되요 위의 마우스 포인터 쪽 보기 를 하나만 가져다 놓으면 마우스 포인트를 실행될 당시 한번만 보고 끝난다는 뜻이에요 즉 마우스 포인터가 다른 곳으로 가더라도 따라서 바라보지 않는다는 거죠.
이렇게 되어 있으면 한번만 실행되요.
우리는 마우스 포인터를 계속 즉 반복적으로 보고 있도록 하고 싶어요. 그래서 필요한 명령블록이 하나더 있어요. 제어 팔레트의 '무한 반복하기' 에요
우리 한글의 디긋(ㄷ) 자 모양이네요. 이 명령 블록은 디슷자 모양 안쪽에 들어가는 명령 블록을 계속해서 실행하게 되요. 한번 계속해서 마우스 포인터쪽을 바라보게 해볼까요?
이것으로 4. 고양이 스프라이트가 마우스 포인터를 계속 바라보게 하기도 되었어요
그런데 고양이 스프라이트가 마우스 포인터를 바라보기만 해서는 안되겠죠?
스프라이트가 이동하거나 방향을 바꾸거나 하는 명령 블록은 '동작' 팔레트에 있어요. 그중 우리가 지금 필요한 명령 블록은 ~ 만큼 움직이기 에요.
이 명령 블록을 사용하면 해당 스프라이트가 바라본는 방향으로 움직이게 되요 한번에 더 많이 움직이게 하고 싶으면 숫자를 크게 조금씩 움직이게 하고 싶다면 숫자를 작게 바꾸면 되요.
그런데 이번에도 '계속 움직이게 하기' 라고 되어 있네요. 움직임을 반복해야 한다는 뜻이네요. 그렇다면 무한 반복 안쪽에 들어가야 겠네요.
여기에서 시작하기 버튼을 클릭 하여서 지금 까지 만든데로 원하는 데로 작동하는지 확인해 보세요. 잘 동작한다면 다음 작업으로 동작하지 않는다면 위의 작업을 다시 확인해 보세요.
*스크래치 코딩을 하는 중간 중간 시작하기 버튼을 클릭 하면서 만들고 있는 내용을 작동해 볼 수 있어요.
다음으로 6. 고양이 스프라이트가 마우스 포인터와 닿으면 과 7. 고양이 스프라이트가 '잡았다!!!' 라고 2초간 말하기 를 함께 만들어 볼게요
조건은 어떤 상태나 행동이 맞는지 여부를 확인하는 거에요 지금은 고양이 스프라이트와 마우스 포인트가 닿았는지를 확인하는 것이죠.
이 때 필요한 명령 블록은 감지 팔래트 에 있는 '마우스 포인터 에 닿았는가?' 명령 블록을 사용할거에요.
마우스 포인터 에 닿았는가? 명령 블록은 마우스 포인터 에 닿으면 참(True) 마우스 포인터 에 닿지않았으면 거짓(False) 라는 결과를 알려줘요.
모양을 보면 지금까지 사용한 명령 블록과는 다르게 생겼죠? 이런 모양의 명령 블록은 혼자서는 작동 이 안되요. 다른 블록과 결합해야 동작이 가능해요. 그러면 어떤 블록들과 결합이 가능 할까요? 명량 팔래트의 블록들을 천천히 살펴 보다 보면
이런 모양을 가진 블록들이 있어요. 이런 블록들과 결합이 가능해요. 고양이 스프라이트가 마우스 포인터와 닿으면을 만들어 볼게요. 제어 팔래트의 '만약 <> (이)라면' 을 무대의 빈 공간에 드레그 한 다음
마우스 포인터 에 닿았는가? 블록을 드래그 하여서 <> 모양에 가져다 놓으면 테두리가 흰색으로 바뀌게 될거에요 이 때 마우스의 버튼에서 손을 떼면 아래와 같이 결합이 될거에요.
이렇게 결합된 블록은 마우스 포인터에 닿게되면 '참(True)'이 되면서 만약 (이)라면 블록 내부의 명령 블록을 실행하게 되요.
연결 하면 아래와 같이 될거에요.
이제 안녕!을 잡았다!!! 로 바꾸도록 할게요.
만들어진 블록을 먼저 만들어져 있는 블록에 연결을 할건데요.
마우스 포인터에 닿았는가? 도 반복해서 여부를 확인해야 하기 때문에 무한 반복하기 안쪽에 들어가야 해요.
마지막 작업 이에요 고양이가 마우스를 잡게 되면 모든행동을 멈추도록 할거에요.
제어 팔래트의 '멈추기 모두' 명령 블록을 사용하면 되요
이 블록은 마우스 포인터에 닿았을때 작동 해야 하니까 '만약 마우스포인터에 닿았는가?(이)라면 블록 내부에 들어가면 되요.
이것으로 우리의 첫번째 스크래치 코딩은 완료 되었어요.
시작하기를 클릭해서 확인해 보세요