[RL.P rogramming/Scratch] - 2. 설치부터 해야지?
[RL.P rogramming/Scratch] - 3. 뭐든 해보는게 장땡! 무턱대고 만져보자.
[RL.P rogramming/Scratch] - 4. 박쥐가 움직여요!
에서 이어져욥 !
오늘 우리가 하려는 것은 이런겁니다.
박쥐가 날개를 퍼덕거리면서 오른쪽으로 1초마다 날아가기!
신기하죠? :)
자. 이제 시작해 보죠.
이제는 스크레치가 시작 프로그램 위쪽에 올라올 때도 됐죠?
다시한번 켜 봅시다.
그리고 지난번에 4. 박쥐가 움직여요! 에서 했던 프로젝트를 한번 불러와 봅시다.
파일에서 프로젝트 가져오기를 선택해요.
그러면 우리가 지난번에 했던 프로젝트가 목록에 있을꺼에요.
아마도 더 많은 프로젝트가 생기면, 더욱 많은 목록에 글이 생기겠죠?
이 연재가 끝나고 나면 스크롤이 생겨있을 꺼에요 ^^
지난번에 저장했던 대로 BAT프로젝트를 한번 불러와 봅니다.
BAT를 누르고 확인 버튼을 누르시면 되요 :)
자아 지난번에 했던 프로젝트가 불러와졌습니다.
어라? 근데 뭔가 이상하네요?
스크레치의 트레이드 마크! 고양이가 그대로 있어요!
이건 뭥미..라고 생각하지 마시고 일단 삭제해 주세요.
나중에 이런 기능도 쓸모가 있을 테니까요 :)
삭제하는 방법은 이제 아시죠?
오른쪽 하단의 회색창에서 고양이 우클릭 후 삭제!
과감하게 너는 탈락이야!
이번에는 회색 박쥐를 클릭하고, 스크립트 탭 옆에 있는 모양 탭을 클릭해 볼께요.
그리고 '가져오기' 버튼을 누릅니다.
짜잔.
새로운 스프라이트 가져오기에서 봤던거랑 똑같은 화면이 나왔죠?
이번엔 날개를 아래로 내리고 있는 박쥐를 가져와 봅니다.
클릭하고 확인!
이제는 다 아실 꺼에요 ㅎㅎ
회색만 가져오면 섭섭하니까
검은색도 똑같이
모양-> 가져오기 해서 날개를 아래로 펴고있는 박쥐를 가져와 보죠!
두둥, 확인을 누르게 되면
요렇게, 검은색 박쥐의 모양이 두개가 되었어요!
새로 가져온 박쥐의 모양을 클릭해보면
모냥도 바뀌는군요. 호오라.
엇, 그럼 이쯤에서 뭔가 이상한게
똑같이 가져오는 건데, 스프라이트 가져오기는 뭐고 모양 가져오기는 뭘까요?
스프라이트라는건 ,
무대에 배치되어 있는 '개체'를 뜻해요.
그게 사람이 됐든 동물이 됐든 뭐가 됐든 간에요.
그러니까 연극무대에 올라간 배우라고 생각하시면 쉬울꺼 같아요.
디렉터나 플래시를 써보시는 분은 아시겠지만
타임라인 위에 각 Object를 배치해서 움직이게 하잖아요?
그거랑 똑같은 거에요 ^^
'모양'은 무대에 배치되어 있는 개체가 어떤 모양을 할 수 있는가를 뜻하고요.
이렇게요 ^^;;
스프라이트 하나는 저 파란색 인간이고,
모양은 삿대질 하나, 무릎꿇고 있는거 하나.. 라고 생각하시면 쉽겠네요 ^^
그리고 '스크립트'는 보시다시피 저 배우의 동작을 결정하는 거죠
자 그럼 이 스크립트 파트로 다시 돌아와서
회색의 박쥐를 우측 아래에서 클릭해 보면
우리가 기존에 만들었던 스크립트가 그대로 남아있네요.!
그런데 가만히 보니까 너무 지저분한 거에요.
똑같은걸 열개나 써놓다니! 단정한 내 성격으로써는 정의의 이름으로 용서할 수 없다!
라고 해서 지워버리기로 결심을 합니다.
먼저 녹색깃발 클릭되었을 때 .. 아래부분의 10만큼 움직이기를
오른쪽 클릭을 한 상태로 다른곳으로 질질 끌고와 봅니다.
분리되는 모습 보이시나요?
일단 녹색깃발 클릭되었을 때와 아래의 행동들을 분리한 후에
이걸 굳이 분리해서 삭제하는 이유는,
그냥 붙어있는 상태에서 삭제하면
'녹색깃발 클릭할때' 까지 한번에 지워져 버리거든요 ^^;;
다시 드래그하기 귀찮기도 하거니와
이렇게 짧은게 아니라 훨씬 긴거일 경우에는 부분적으로 삭제할 일이 있을테니까
그때를 대비해서 미리미리 배워놓아요 :)
삭제를 하다니.. 아아..나의 노고가..라고 생각할 수도 있지만
더 쉬운 방법으로 가는거니까 이해해 주세요
그리고 지난 강좌에 배웠던 방법 그대~로.
반복10회 사이에
1초 기다리기
사진에 못보던 보라색이 생겼어요.
넵, 이것이 바로 오늘의 비밀. '모양 제어하기'입니다.
1초 기다리기 밑에 모양 bat1-a로 바꾸기..라는게 생겼죠?
뜬금없이 bat1-a이 뭐야? 라는 생각이 드신다면
다시 '모양'탭을 눌러주세요.
보이시나요?
회색 박쥐가 날개를 편 모습이 bat1-a
그리고 날개를 접은 모습이 bat1-b 라는거!
이 이름은 바꿀수도 있지만,
아까 그냥 내버려뒀기 때문에 그냥 자동으로 붙는 이름이 되었네요.
자아 그럼 아까 작성한 스크립트는 무슨 뜻이 될까요?
10만큼 이동하기 -> 1초 기다리기 -> 모양 bat1-a로 바꾸기
가 되겠군요.
부푼 기대를 안고 실행해 봅니다.
... 아까랑 아무차이가 없잖아! 라고 화를 내시는 분
잠깐 진정하시고 왜그런지 좀 살펴볼께요.
bat1-a 그림은 말 그대로 회색박쥐가 날개를 펼친거죠.
그런데 스크립트 그 어디에도 회색박쥐가 날개를 접은 모양으로 바꾸라는 말이 없는 거에요!
그래서 아래와 같이 한번 더 작성해 봤어요.
클릭되면
반복 10회
10만큼 움직이기
1초 기다리기
모양 bat1-b로 바꾸기 (박쥐가 날개를 접겠죠?)
10만큼 움직이기
1초 기다리기
모양 bat1-a로 바꾸기 (박쥐가 날개를 펴겠죠?)
참고로 모양 바꾸기에서 안으로 움푹 들어가있는 상자는
'이 스프라이트의 모양'중에서 선택할 수 있는 모양 목록이 나와요.
지금같은 경우 bat1-a, bat1-b 두개가 나오는군요.
직접 클릭해보세요 ^^
그러고 나서 오른쪽의 파란색 깃발을 눌러서 실행을 해봅니다.
박쥐가 파닥파닥 움직여요. !
어라.어라. 어라?
그런데 왜이러지? 회색 박쥐가 검은색 박쥐보다 두배나 더 많이 가네요!
에잇. 생각해보니 그도 그럴것이
한번 반복할때마다 박쥐가 10 * 2 = 20씩 움직였네요!
그래서 위와같이 반복을 5번만 하도록 고칩니다.
'반복 10회' 안에 있는 글자를 반복 5회로 키보드로 치시면 되욥.
자 이제 실행하시면 정상적으로 돌아오죠?
좋네요 ^,.^
이번엔 까만색 박쥐를 처리할 차례죠?
우측 하단의 까만색 박쥐를 클릭해 보면
이번에 까만 박쥐는 또 회색박쥐랑은 다른 방법으로 해볼께요.
제가 이번에 선택한 방법은,
니가 다음에 바꿀 모양은 이거야! 라고 지정해주는 방법입니다.
왼쪽의 분류 중에서 주황색인 '변수' 클릭해 볼까요?
아래쪽에 '변수만들기'라는 거 보이시죠?
클릭~하세요!
가운데에 요론게 나옵니당.
박스에 batshape라고 친건 제가 대충 쳐 넣은거구요.
아래에 '모든 스프라이트에 대해' 그리고 '이 스프라이트에 대해'는
까만 박쥐에서만 쓰는거냐 아니면 모두 다 같이 쓰는거냐 ..에요.
아차. 제가 변수에 대해서 말씀을 안드렸군요?!
변수는요. 프로그래밍을 할때요.
각 스프라이트의 상태나 값같은걸 저장할 수 있는 걸 말해요.
변(할 수 있는)수 라는 뜻이고요.
수라고 적혀있기는 하지만, 사실은 문자든 뭐든 다 들어갈 수 있어요.
변할 수 있는 수라는게 지금은 잘 이해가 안가실 테니
아래 예제를 따라하면서 배워볼께요 ^^
자 확인 누르셨나요?
일단 내버려두시고, 다시 노란색의 제어로 돌아와 주세요.
밑에 쭈욱 보다 보면
이런 블럭이 보이실 꺼에요.
제어문인데요.
이걸 1초 기다리기 밑에다가 한번 붙여넣어 볼께요.
슥삭 하고 붙으면서, 반복 안에 들어갔죠?
성공한 겁니다. ^^
그런데 가만히 보니까
만약 <> 라면 블럭 안에는 육각형이 들어가 있어요.
그럼 끼워넣을 수 있는 육각형을 찾아봐야겠군! 이라는 느낌이 오시나요? ^^
육각형은 초록색의 '연산' 안에 있습니다. ^^
연산탭으로 들어오셨다면
그리고 '만약 <> 라면' 안에 끼워 넣으세요!!
철커덩 붙었나요?
그럼 지금 블럭 모양이
자 드디어 우리의 변수가 활약할 차례가 왔군요.
다시 변수탭에 가셔서 아까 만든 batshape를 초록색 블럭 왼쪽에 끼워넣으세요.
그리고 합체했으면 이제 모양을 바꾸어봐야겠죠?
이제는 익숙하신 모양 바꾸기를 끼워넣읍시다.
만약..안에 모양 bat2-b로 바꾸는걸 끼워넣고,
아니면..안에 모양 bat2-a로 바꾸는걸 끼워넣자구요.
그리고 실행을 해 봅시다!
... 하아 왜인지 모양이 계속 bat2-b군요..
왜일까요?
처음에 초록색 깃발이 클릭이 되면,
batshape라는 변수값이 0입니다.
그리고 아까 끼워넣었던 '만약'...에서
batshape값이 0이면 모양을 bat2-b로 바꿔라! 라고 명령했었죠?
컴퓨터는 충실하게 명을 따른 죄밖에 없네요 ㅠㅠ
그러면 어떻게 해야 할까요?
간단하죠.
batshape값을 바꿔주면 됩니다.!
지금 보이는 모양이 박쥐가 날개를 접고 있는 모양이라면
다음 할 차례는 박쥐가 날개를 펴고 있는 모양이야! 라는 뜻으로
batshape에다가 '넌 이제부터 1이야'라고 해줍니다.
반대로 지금 박쥐가 날개를 펴고 있다면
다음 할 차례는 박쥐가 날개를 접고 있는 모양이야! 라는 뜻으로
batshape에다가 '넌 이제부터 0이야'라고 해주면 되고요.
가만히 보니까 batshape는 프로그램이 진행되는 동안 0도 됐다가 1도 됐다가 하네요?
아항. 변하는구나.
그래서 변수구나..하는거에요 ㅎㅎ
어려우신가요? ^^;;
결국 최종적으로는 위와 같은 모양이 되는데요.
오늘 한게 조금 어려울 수도 있으니까, 몇번 생각해보시고 따라해 보세요 ^^

