뱀 만들기[04] – 엔트리

준비하기

이 글은 시리즈다. 이 글을 읽기 전에 읽어야 하는 글이 존재한다. 만일 이 글 부터 뱀 만들기를 시작하려면 이전버전 바로가기를 클릭하라.


지금까지 뱀과 먹이, 독먹이를 만들었다. 좌,우,상,하 화살표키로 뱀의 진행 방향을 조정할 수 있다. 뱀머리를 상징하는 뱀 눈동자도 만들었다. 뱀이 먹이를 먹으면 점수가 올라간다. 목표점수는 70점이고 먹이를 먹을때 마다 뱀의 길이도 늘어난다. 점수만큼 늘어난다.
독먹이를 먹게되면 점수를 10점 잃고 뱀의 길이도 그 만큼 짦아지게된다. -10점이면 게임 실패!!
이번엔, 게임 성공과 실패에 따라 장면이 바뀌고 게임을 더 할지 그만할지 선택하게 하는 기능을 추가하고자 한다.


장면 추가하기

영화나 드라마에서도 장면이 바뀌면 등장하는 인물도 바뀐다. 엔트리에서는 장면에 따라 스토리를 구성할 수 있고 장면이 바뀌면 오브젝트도 새롭게 구성된다.
snake025.png
장면을 추가하기 위해서는 장면1 옆의 + 탭을 눌러준다. 그러면 그림처럼 장면2라는 새로운 장면이 추가된다. 장면2에서 보일 배경을 추가하기위해 아래 +버튼을 클릭한다.


배경 추가하기

뱀이 독먹이를 피하면서도 먹이를 충분히 먹어 점수가 70점이 되면 게임이 승리로 끝난다. 그럴때 승리를 축하하는 장면으로 바뀌고 게임을 다시시작 할지 끝내기 할지를 선택하게 하고자 한다.
snake026.png
모양 탭에서 모양추가하기 버튼을 클릭하여 두개의 배경을 추가한다. 각각의 모양이름을 성공실패로 정한다.


오브젝트의 이름을 배경 으로

snake027.png
오브젝트의 이름을 배경으로 바꾸자. 오브젝트가 물건이나 등장인물인 경우 오브젝트이름을 쉽게 바꿀 수 있는데, 배경오브젝트는 그 오브젝트의 이름을 바꾸기 위해서는 먼저 자물쇠를 풀어야 한다.


배경오브젝트 블럭코딩

장면이 장면2로 바뀌는 경우는 점수가 70점에 도달했을 때 (미션성공) 과 점수가 -10점에 도달했을 때 (미션실패) 이다. 점수에 따라 보여지는 모양이 선택되도록 한다.
snake030.png
위 그림과 같이 배경오브젝트의 블럭코딩을 작성한다.


글상자오브젝트 추가하기

화면에 글씨를 출력할 수 있다. 미션성공인 경우 "참 잘하셨습니다!" 라는 글을 보여주고, 미션실패인 경우 "실패! ㅠㅠ" 라는 글을 보여주고자 한다. 이러한 오브젝트가 글상자오브젝트이다.
글상자오브젝트도 보통의 오브젝트 만들 때 처럼 + 버튼을 클릭해서 시작하고 다만, 오브젝트 선택할 때 글상자 버튼을 클릭하면 된다.
snake028.png
위 그림 처럼 글상자 오브젝트를 만든다.
snake029.png
한줄짜리 글상자와 여러줄짜리 글상자가 있는데, 한줄쓰기 버튼을 클릭하여 한줄짜리 글상자를 만들고 글상자의 내용을 일단 '내용' 이라고 한다.
snake032.png
글상자의 글씨체, 색, 배경색등을 지정할 수 있는데 이번 경우는 배경색을 투명으로 지정하자.
snake031.png
이제 위와 같이 글상자의 블럭코딩을 완성한다.


다시시작 버튼 만들기

게임을 처음부터 다시시작 하고자 하는 경우를 선택하기 위한 버튼. 그 버튼도 글상자오브젝트로 만들 수 있다.
snake033.png
위 그림과 같이 또하나의 글상자 오브젝트를 만들되, 글자색과 배경색을 적당히 선택하여 버튼처럼 보이게 하라.

snake034.png
위 그림과 같이 다시시작 글상자를 화면 내 적당히 배치하자.

snake035.png
위 그림과 같이 다시시작 글상자의 블럭코딩을 완성한다.


끝내기 버튼 만들기

다시시작 버튼 오브젝트를 복사하여 끝내기 버튼을 만들자.
snake036.png
위 그림처럼, 다시시작 글상자 오브젝트를 오른클릭하여 오브젝트를 추가한다.

snake037.png
복제한 오브젝트의 글상자 내용을 위 그림과 같이 끝내기 로 수정한다.
snake038.png
위 화면과 같이 끝내기 오브젝트를 화면내 잘 배치하고 오브젝트의 이름도 끝내기로 수정한다.
snake039.png
끝내기 오브젝트의 블럭코딩을 완성한다.

독먹이 오브젝트 블럭코딩 수정

snake040.png
독먹이를 먹게되면 점수가 10점씩 줄게 되는데 급기야 -10점 되면 장면2로 넘어가도록 블럭코딩을 수정한다.


먹이 오브젝트 블럭코딩 수정

snake041.png
먹이를 먹게되면 점수가 10점 올라가게 되는데, 70점이 되면 장면2로 넘어가도록 블럭코딩을 수정한다.


독먹이 독기 빼기

독먹이가 등장하면 점수 내기가 너무 어렵다면, 독먹이의 독기를 빼고 좀 순하게 만들자.
snake042.png
위 3개의 숫자를 그림과 같이 바꾸어 독먹이를 순하게 만들자.
코드가 완성되면 실행해 본다.

  • 점수가 -10 이 되면 실패 화면이 등장하는가?
  • 점수가 70 이 되면 성공 화면이 등장하는가?
  • 장면이 바뀌면 다시시작 버튼과 끝내기 버튼이 보이고
  • 버튼을 클릭했을 때 원하는 동작이 수행 되는가?

뱀 만들기[03] – 엔트리

준비하기

이 글은 시리즈다. 이 글을 읽기 전에 읽어야 하는 글이 존재한다. 만일 이 글 부터 뱀 만들기를 시작하려면 이전버전 바로가기를 클릭하라.


지금까지 뱀과 먹이를 만들었다. 좌,우,상,하 화살표키로 뱀의 진행 방향을 조정할 수 있다. 뱀머리를 상징하는 뱀 눈동자도 만들었다. 뱀이 먹이를 먹으면 점수가 올라간다. 점수는 최대 50점 까지 올라간다. 먹이를 먹게 되면 뱀의 길이도 늘어난다. 점수만큼 늘어난다.
이번엔 방햇군을 만들고자 한다. 방햇군의 이름을 독먹이라 칭하고, 독먹이를 먹게되면 점수를 10점 잃고 뱀의 길이도 그 만큼 짦아지게된다.


독먹이 오브젝트 만들기

+ 버튼을 클릭하여 오브젝트를 생성하는데 그림은 직접 그려야 한다.
snake018.png
위와같은 그림을 그리고 새그림을 클릭하여 저장한 후, 그림의 이름을 그림1로 바꾼다. 독먹이의 그림은 자유롭게 창작하도록 한다. 다만 그림의 크기가 먹이와 비슷한 크기로 하는 것이 좋겠다.

snake019.png
만들어진 독먹이 오브젝트의 이름을 독먹이로 바꾸고, 화면에 적당히 배치한 다음, 이동방향을 0으로 정한다.

snake020.png
위의 그림과 같은 블럭코드를 작성한다. 코드의 내용을 보면 다음과 같다.

  • 크기를 1/10 로 줄인다.
  • 무한반복
    • 뱀의 눈동자 위치에서 50만큼 앞선 위치로 이동
    • 뱀의 눈동자 방향으로 조금씩 움직인다.

코드가 제대로 만들어 졌으면 실행해 본다.

  • 독먹이가 뱀의 앞에서 나타 나서 뱀머리를 향해 움직이는가?
  • 위와 같은 사항이 무한히 반복되는가?
  • 독먹이가 뱀으로 부터 더 멀리 떨어뜨리거나 가까이 두거나 할 때 어떻게 해야 할지 생각해 두라.
  • 독먹이가 뱀머리로 향하는 시간을 더 길게 하기위해서는 어떻게 해야 하나?
  • 독먹이의 움직임을 빠르게 하거나 늦게 하려면?

점수가 30점 이상일 때 독먹이 등장 시키기

snake022.png
그림과 같이 독먹이등장 이라는 신호를 만든다.
코딩블럭으로 신호를 발생시키거나 신호가 발생했을 때 특정 코딩블럭을 실행 시킬 수 있다. 우리는 점수가 30점 이상일 때 독먹이등장 이라는 신호를 발생시키고 그 신호가 발생했을 때 독먹이를 등장시키고자 한다.

snake023.png
코딩블럭을 위 그림과 같이 수정한다.

시작버튼을 클릭했을 때

  • 크기를 1/10 로 줄인다.
  • 화면에서 감춘다.
  • 무한반복
    • 점수가 30점 이상이면 : 독먹이를 등장 시킨다.
    • 무한반복 탈출

코딩블럭을 제대로 수정하였다면 실행해 본다.

  • 점수가 30점 이상이 되면 독먹이가 등장하는 가?

독먹이를 먹으면 감점하기

독먹이를 먹으면 점수가 10점 줄어들게 하자. 뱀의 길이는 점수에 따라 정해지도록 코딩되어 있음을 기억하라. 점수가 -10점이 되면 프로그램이 멈추게 한다.
snake024.png
위 그림과 같이 코딩블럭을 수정한다. 독먹이가 뱀의 눈동자에 닿게 되면 점수를 감점하고 즉각 움직임을 중단한 다음 새로운 위치에서 재 등장하게 된다.
코딩블럭이 제대로 수정되었으면 시작하기 버튼을 클릭하여 샐행해 본다.

  • 독먹이를 먹으면 점수가 10점 줄어들고 뱀의 길이도 줄어드는가?
  • 독먹이를 계속 먹어서 점수가 -10점이 되면 게임이 종료되는가?

뱀 만들기[02] – 엔트리

준비하기

이 글은 시리즈다. 이 글을 읽기 전에 읽어야 하는 글이 존재한다. 만일 이 글 부터 뱀 만들기를 시작하려면 이전버전 바로가기를 클릭하라.


지금까지 뱀 한마리를 만들었다. 우리가 만든 뱀은 좌,우,상,하 화살표키로 진행 방향을 조정할 수 있다. 뱀머리를 상징하는 뱀 눈동자도 만들었다. 이제 뱀 주변을 제멋대로 움직이는 먹이를 만들어 보자. 뱀이 먹이를 먹으면 점수가 올라간다. 점수는 최대 50점 까지 올라간다. 먹이를 아무리 먹어도 점수는 50점 이상 올라갈 수 없다. 먹이를 먹게 되면 뱀의 길이도 늘어난다. 점수만큼 늘어난다. 뱀의 길이를 무한정 늘릴 수 없고 어느정도 늘어나면 뱀의 몸통이 끊어지는 에러가 나타나므로 최대 점수를 50점으로 한정한다.


오브젝트 먹이 만들기

snake011.png
+를 클릭하여 먹이를 만들자. 먹이의 모양은 직접 그려야 한다. 자신이 원하는 모양으로 먹이를 그린다. 단, 뱀 머리 보다는 크기가 작게 그리는 것이 좋겠다.


snake012.png
새로 만든 오브젝트의 이름을 먹이로 바꾸고, 그림처럼 먹이를 화면에 적당이 위치시킨다.


snake013.png
화면과 같이 먹이의 블럭코드를 작성한다.
작성이 완료되었으면 실행시켜 보자.

  • 먹이의 크기는 적당한가?
  • 먹이가 화면의 무작위 위치에서 나타나는가?
  • 먹이는 제멋대로 움직이는가?
  • 먹이가 벽에 닿으면 튕기는가?

먹이를 먹으면 점수가 올라가게 하자.

snake014.png
그림과 같이 점수라는 변수를 만들자. 점수는 모든 오브젝트에서 사용하도록 선택한다.


snake015.png
변수를 만들고 난 뒤, 그림처럼 먹이의 블럭코딩을 수정한다.
제대로 수정되었으면 실행해 본다.

  • 먹이를 먹으면 점수가 10점씩 올라가는가?
  • 먹이를 먹기 전에는 점수가 0인가?
  • 먹이를 먹고 나면 먹이가 새로운 위치에서 다시 나타 나는가?

먹이를 먹으면 뱀의 몸통이 길어지게 하자.

snake016.png
뱀의 몸통이 길어지는 이유는 뱀의 오브젝트의 복사본 때문이다. 뱀 오브젝트의 코딩 블럭을 위 그림과 같이 수정하자. 수정이 제대로 완료되었으면 실행해 본다.

  • 먹이를 먹을 때 마다 뱀의 길이가 늘어 나는가?
  • 먹이를 먹기 전에는 뱀의 머리만 있는가?
  • 먹이를 많이 먹어서 뱀의 길이가 많이 늘어나게 되면 뱀의 몸통이 자꾸 끊어지는 현상이 보이는가?
  • 그런 현상은 원의 복제본을 너무 많이 생성하여 최대 복제본 한계치를 넘어섰기 때문이다.

점수의 최댓치 정하기

snake017.png
먹이의 코딩블럭을 그림과 같이 수정하자. 수정이 완료되면 실행해 본다.

  • 먹이를 아무리 먹어도 점수가 50점을 초과하지 않는가?
  • 뱀의 길이가 점수가 50점이 되면 더이상 늘어나지 않는가?
  • 우리는 왜 뱀의 길이를 무한정 늘어나게 할 수 없는가?

뱀 만들기[01] – 엔트리

준비하기

이 글은 시리즈다. 이 글을 읽기 전에 읽어야 하는 글이 존재한다. 만일 이 글 부터 뱀 만들기를 시작하려면 이전버전 바로가기를 클릭하라.


지금까지 뱀 한마리를 만들었다. 우리가 만든 뱀은 좌,우,상,하 화살표키로 진행 방향을 조정할 수 있다.

오브젝트 이름 변경 원 -> 뱀

snake007.png
먼저, 우리가 만든 오브젝트 은 사실 뱀이므로 오브젝트의 이름을 으로 바꾸고 시작하자.


눈동자 오브젝트 만들기

snake008.png
눈동자 오브젝트를 만들기 위해 + 버튼을 클릭한다. 그러나 눈동자가 오브젝트 라이브러리에 없으므로 새로그리기를 클릭하여 위 그림과 같이 눈동자를 직접 그린다.
그려진 눈동자를 모양으로 저장하기 위해 새그림을 클릭하고, 모양의 이름을 위 그림과 같이 모양1로 정한다.


snake009.png
위 그림과 같이 새로 만든 오브젝트의 이름을 눈동자 로 바꾸고, 위 그림과 같이 뱀 머리 위에 적당이 위치시킨다. 특히 이동방향0.0 으로 놓는 것을 잊으면 안된다.


snake010.png
이제 코드블럭을 그림과 같이 조립한다. 조립이 완료되었으면 실행해 본다.

  • 눈동자가 뱀 머리위에 붙어 있는가?
  • 화살표키를 누르면 눈동자가 화살표 방향대로 방향을 바꾸는가?
  • 뱀 머리에 눈동자를 붙이기 위해 만들어진 코드블럭을 잘 이해 해 보자.

뱀 만들기[시작] – 엔트리

step 1 : 원 오브젝트 생성

snake001.png

초기 자동 생성된 오브젝트를 지우고 + 버튼을 눌러 원 오브젝트를 찾아 생성한다. 원 오브젝트는 인터페이스 분류에 있다.
오브젝트의 x, y 좌표와 크기, 방향 및 이동방향, 그리고 회전방식등을 그림과 같이 설정한다.


step 2 : 원 오브젝트 움직이기

snake002.png
그림과 같은 블럭을 조립하여 원이 움직이게 하자.

  • 원은 어떤 방향으로 움직이는가?
  • 더 빠르게 움직이게 하려면 어떻게 해야 하나?
  • 벽에 닿았을 때 움직임을 멈추게 하려면?

step 3 : 벽에 닿으면 멈추게 하기

snake003.png
코드 블럭을 그림과 같이 수정한다.

  • 벽에 닿으면 원이 멈추는가?
  • 왜 멈추게 되었는지 생각해 보자.

step 4 : 여러 방향으로 움직이게 하기

snake004.png
상,하,좌,우 네 방향으로 움직이게 하기 그림과 같이 코드 블럭을 수정한다.

  • 화살표 키를 누를 때 마다 뱀의 움직이는 방향이 바뀌는가?
  • 화살표 방향대로 움직이는가?

step 5 : 원의 크기를 작게 하기

snake005.png
공의 크기를 원래 크기의 10분의 1배로 줄여보자. 크기를 100으로 정하면 원래의 크기이고 10으로 정하면 10분의 1의 크기로 줄어 든다.

  • 원의 크기를 내맘대로 크게 하거나 작게 할 수 있는가?

step 6 : 뱀처럼 긴 몸통을 가지게 만들기

snake006.png
뱀처럼 만들기 위해서 위 그림과 같이 코드블럭을 수정하자. 자신의 복제본을 만들면 동일한 원이 하나 더 생기게 된다. 복제된 원은 2초후에 사라진다. 그렇게 원이 복제본을 만들면서 움직이게 되면 여러 원이 겹쳐지면서 길이가 긴 뱀처럼 보이게 된다.

  • 뱀의 길이를 더 길게 하려면 어떻게 해야 할까?