오픈 소스/스크래치

[스크래치] 곰의 사계, 고향 찾는 곰

Linuxpia4U 2023. 4. 14. 14:22
반응형

곰의 4계와 나들이

전 시간까지 스프라이트 '걸어가는 곰'을 선택해서 자연스럽게 걸어가는 모습을 코딩했습니다. 또한 배경을 바뀌면서 곰이 소풍 가는 모습을 그렸습니다.

왼쪽은 곰이 걸음을, 오른쪽은 배경을 바꾸기

스프라이트 'Bear-walking'은 8개의 다른 모습을 배치하여 자연스러운 걸음을 구현합니다.

걸어가는 곰의 다른 모습

블록으로 작성되는 코드는 단순합니다. 무한반복문 속에 단 세 개의 블록으로 완성됩니다.

걷는 곰

배경을 바꿔 장면 전환하기

스프라이트 '곰'이 벽에 닿으면 원래 위치로 옮기고 배경을 '다음 배경'으로 바꾸기를 합니다. 이 과정은 무한 반복하기 때문에 정지 버튼을 누르기 전까지는 계속 배경이 바뀝니다.

배경 바꾸기

배경 이름을 말풍선으로 나타내기

'곰' 스프라이트에 마우스 포인터를 올리면 현재 배경 이름이 '말풍선'으로 나타나도록 합니다.

'말풍선' 사용하기

여기서는 연산 팔레트에서 '결합하기' 블록을 선택합니다. '무대의 배경 이름'과 텍스트 '~에 도착했군'을 결합시킵니다.

연산 > 결합하기

결합한 블록을 '행태' 팔레트의 '생각하기'와 묶어 하나의 완성된 블록을 형성합니다. 이것을 조건문 안에 포함시키는 것입니다. 조건은 '마우스 포인터에 닿았는가?'입니다.

 

이 과정을 무한 반복시킵니다. 프로그램이 계속되는 동안은 스프라이트 '곰'에 마우스가 닿으면 현재 배경을 텍스트로 표현하게 됩니다.

 

지금까지 코딩은 다음과 같습니다.

 

점프하는 장면

스프라이트 '곰'이 점프하는 것은 y좌표만 올렸다가 제 자리로 옮기면 됩니다. x좌표는 변함 없고 y좌표만 올렸다가 내렸으니 스프라이트만 뛰었다가 내려오게 됩니다. 물론 이 사이에도 x좌표는 조그만 이동은 계속됩니다. 쉼을 주는 것은 순간에 올라갔다 내려오는 것이 동시에 이루어지면 뛰는 모습은 보이지 않습니다. 0.1초 또는 0.2초 동안 머물렀다가 내려와야 점프 느낌이 납니다. 너무 오랜 쉼을 주면 부자연스럽게 됩니다. 마술 부리는 것이라면 몰라도.

스프라이트 점프 장면

만약 1초나 2초의 '기다리기' 블록을 사용하면 뛰어 올라 1초나 2초를 앞으로 전진했다가 내려오게 됩니다.

 

완성된 스크래치

이 모든 과정을 전부 옮기면 다음과 같습니다.

프로그램 전체 코딩

이번 코딩은 배경이 바뀌는 가운데 곰이 계속 전진하는 프로그램입니다. 가다가 마우스를 곰에 터치하면 현재 배경을 뇌까립니다. 또한 스페이스바를 눌러주면 곰이 폴딱 뛰어올랐다 내려옵니다.

반응형