스크래치 배우기

층 만들기

일반적으로 게임에서는 여러 층으로 캐릭터가 점프를 하면서 임무를 완수하게 됩니다. 이번 시간에는 이를 구현하는 방법에 대해서 알아봅니다.

점프 시간에 배운 점프 방법은 특정한 색상의 바닥을 만날 때까지 캐릭터가 아래로 내려오는 방식입니다. 이 방식의 장점은 여러 층을 만들 때도 단지 색상만 지정하면 캐릭터가 알아서 층에 따라서 움직이게 된다는 점입니다. 그럼 아래와 같이 배경을 변경해봅시다.

층 만들기 기본

http://scratch.mit.edu/projects/24082297/

위의 예제는 언듯 잘 동작하는 것 같지만 꼼꼼하게 살펴보면 여러가지 문제가 있습니다. 고양이가 층 위로 올라온 상태에서 좌우로 움직이면 마치 하늘을 날고 있는 것 같은 모습을 보여주고 있네요. 개선이 더 필요하겠네요.

층에서 벗어나면 내려오도록 변경

만약 고양이가 녹색 배경을 벗어나서 공중에 있게 되면 아래로 떨어지도록 하는 것이 자연스럽겠죠? 

http://scratch.mit.edu/projects/24086080/

댓글

댓글 본문
작성자
비밀번호
  1. JustStudy
    고맙습니다
  2. 후반양반무
    여기서의 해결방법은 ↑키를 한번 눌렀을때는 적용되지 않습니다. 그러니 ↑키를 계속해서 누르고 있다! 고 가정하고 이야기해 볼께요.
    일단 게임이 시작되고 무한반복문이 실행됩니다. 이때 ↑키를 '누르고 있으면' 점프를 하겠죠? 그때 녹색의 층에 닿았다고 합시다. 그러면 [[녹색에 닿았는가?] 까지 반복하기]는 물론 실행되지 않습니다.
    하지만 그 위에 있는 두개의 블럭 [Y속도를 24로 정하기]와 [Y좌표를 Y속도만큼 바꾸기]는 실행이 됩니다. 그러니 녹색에 닿아있다고 하더라고 ↑키를 누르고 있으면 Y좌표가 24만큼 계속 이동하는 것이죠.
    이렇게 문제가 해결되지만 언급했다싶이 약간 부자연스러운 모습이 보입니다.
    대화보기
    • 김연희
      고맙습니다. ~~~
    • 예비교사
      이고잉님 강의 잘 보고 있습니다 질문 하나 드릴게 있습니다!
      위로 점프할 때 녹색 블럭에 닿으면 멈추는 문제를 해결하려면 이벤트 기능 대신 반복 제어로 해결을 했는데
      그렇게 할 경우에 왜 문제가 해결되는지 이해가 잘 안되네요
      반복문 안에 넣을 경우에도 녹색에 닿는 순간에는 속도가 감소하는건 마찬가지인데 시행이 잘 되네요
      원리가 궁금합니다
    • 이진호
      왜저는 점프를 하면 움직여지지 않나요?
    버전 관리
    egoing
    현재 버전
    선택 버전
    graphittie 자세히 보기