3권 · 7. 라인센서로 게임 만들기

라인센서로 게임 만들기

라인센서로 방향을 바꾸는 슈팅 게임을 만들어요. 가운데 삼각형이 빙글 돌며 미사일을 쏩니다 🚀

  • 대상 초등 4학년
  • 준비물 4개
  • 블록 76개
  • 산출물 라인센서로 조종하는 미사일 게임을 만들어 봅니다.

오늘 수업 한눈에

  1. 1무엇을 만들까?
  2. 2준비물
  3. 3따라해 보자
  4. 4완성 코드
  5. 5도전

3권 · 7. 라인센서로 게임 만들기

라인센서로 게임 만들기

라인센서로 방향을 바꾸는 슈팅 게임을 만들어요. 가운데 삼각형이 빙글 돌며 미사일을 쏩니다 🚀

오늘의 미션

라인센서로 조종하는 미사일 게임을 만들어 봅니다.

무엇을 만들까?

라인센서로 게임 만들기 완성 모습
가운데 삼각형이 적을 향해 미사일을 쏘는 게임이에요.

삼각형 스프라이트는 가운데에 있고 회전만 해요.

라인센서가 흰색과 검은색을 읽으면 도는 방향이 달라져요.

미사일은 복제되어 삼각형이 보는 쪽으로 날아가요.

준비물

  • 엘리오라인센서로 흰색과 검은색을 읽어요.
  • 삼각형 스프라이트가운데에서 회전하며 미사일을 쏴요.
  • 미사일 스프라이트복제되어 앞으로 날아가요.
  • 적 스프라이트여러 곳에서 나타나 삼각형 쪽으로 와요.

따라해 보자

  1. 1

    삼각형 만들기

    벡터 모드로 삼각형을 그리고 중심점을 가운데에 맞춰요.

  2. 2

    적과 미사일 준비

    검은 삼각형 적과 작은 미사일 스프라이트를 만들어요.

  3. 3

    라인센서로 회전

    흰색이면 한쪽, 검은색이면 반대쪽으로 돌게 해요.

  4. 4

    미사일 계속 발사

    0.2초마다 미사일 발사 메시지를 보내요.

  5. 5

    복제로 날리기

    미사일 복제본이 삼각형 위치에서 보이는 방향으로 날아가요.

완성 코드

🧱완성 코드 76블록 — 블록이 아주 많아요! 눌러서 펼쳐 보기

이 작품은 코드가 길어요. 천천히 부분부분 따라 만들어 봐요. 아래는 실제 Scratch 3.0 완성 코드예요.

무대

⚑ 클릭했을 때
무한 반복하기
[게임배경음악.mp3▾] 끝까지 재생하기

미사일

⚑ 클릭했을 때
숨기기
[미사일 발사▾] 신호를 받았을 때
[_myself_▾] 복제하기
복제되었을 때
[삼각형▾] (으)로 이동하기
((삼각형 방향) - (90))도 방향 보기
보이기
무한 반복하기
(10)만큼 움직이기
만약 [_edge_▾]에 닿았는가? (이)라면
이 복제본 삭제하기
만약 [적▾]에 닿았는가? (이)라면
(0.01)초 기다리기
이 복제본 삭제하기

[게임 시작▾] 신호를 받았을 때
무한 반복하기
[_myself_▾] 복제하기
[적 복사시간▾] 을(를) ((1) 부터 (3) 사이의 난수)로 정하기
(적 복사시간)초 기다리기
복제되었을 때
[속도▾] 을(를) (3)로 정하기
위치 정하기
보이기
무한 반복하기
[삼각형▾] 쪽 보기
(속도)만큼 움직이기
만약 [미사일▾]에 닿았는가? (이)라면
[점수▾] 을(를) (1)만큼 바꾸기
[pop▾] 재생하기
이 복제본 삭제하기
만약 [삼각형▾]에 닿았는가? (이)라면
[체력▾] 을(를) (-1)만큼 바꾸기
[dog1▾] 재생하기
이 복제본 삭제하기
⚑ 클릭했을 때
[체력▾] 을(를) (3)로 정하기
[점수▾] 을(를) (0)로 정하기
숨기기
정의하기 위치 정하기
[위치▾] 을(를) ((1) 부터 (4) 사이의 난수)로 정하기
만약 (위치) = (1) (이)라면
x: ((-200) 부터 (200) 사이의 난수) y: (140) (으)로 이동하기
만약 (위치) = (2) (이)라면
x: (200) y: ((-160) 부터 (140) 사이의 난수) (으)로 이동하기
만약 (위치) = (3) (이)라면
x: ((-200) 부터 (200) 사이의 난수) y: (-160) (으)로 이동하기
만약 (위치) = (4) (이)라면
x: (-200) y: ((-160) 부터 (140) 사이의 난수) (으)로 이동하기
[게임 시작▾] 신호를 받았을 때
무한 반복하기
만약 (체력) = (0) (이)라면
[게임 끝▾] 신호 보내고 기다리기
[게임 끝▾] 신호를 받았을 때
[other scripts in sprite▾] 멈추기

Heart

⚑ 클릭했을 때
보이기
무한 반복하기
만약 (체력) < (3) (이)라면
숨기기

Heart3

⚑ 클릭했을 때
보이기
무한 반복하기
만약 (체력) < (1) (이)라면
숨기기

Heart2

⚑ 클릭했을 때
보이기
무한 반복하기
만약 (체력) < (2) (이)라면
숨기기

삼각형

⚑ 클릭했을 때
(90)도 방향 보기
x: (0) y: (0) (으)로 이동하기
(주황색 삼각형이 미사일을 계속 쏩니다.) 을(를) (2)초 동안 말하기
(라인센서가 흰색을 읽으면 스프라이트가 시계방향으로 회전합니다. ) 을(를) (2)초 동안 말하기
(라인센서가 검은색을 읽으면 스프라이트가 시계반대방향으로 회전합니다. ) 을(를) (2)초 동안 말하기
(적에 닿으면 체력이 하나씩 떨어집니다.) 을(를) (2)초 동안 말하기
[게임 시작▾] 신호 보내기
[게임 시작▾] 신호를 받았을 때
맨 앞쪽으로 순서 바꾸기
[미사일 기다리는 시간▾] 을(를) (0.2)로 정하기
무한 반복하기
[삼각형 방향▾] 을(를) (방향)로 정하기
[미사일 발사▾] 신호 보내기
(미사일 기다리는 시간)초 기다리기
[게임 끝▾] 신호를 받았을 때
(90)도 방향 보기
((여러분의 점수는 ) 와(과) (점수) 결합하기) 말하기
[other scripts in sprite▾] 멈추기
[게임 시작▾] 신호를 받았을 때
[회전각도▾] 을(를) (5)로 정하기
무한 반복하기
[흰색▾] 을(를) (라인1)로 정하기
만약 (흰색) = (1) (이)라면
↻ (회전각도)도 돌기
아니면
↺ (회전각도)도 돌기

진짜 소스: 7.라인센서로 게임 만들기.sb2 · 76블록

도전!

적이 더 빨리 나오게 하거나 체력을 바꿔 보세요!

응원하는 엘리오
엘리오

라인센서 게임 개발자답게 멋지게 완성했어요 🌟

다음 단위라인트레이서