배움터
  •  [ETRI와함께하는코딩 놀이터]포물선 그리며 점프!
  • 어린이동아 취재팀
  • 2017-05-16 21:58:12
  • 인쇄프린트
  • 글자 크기 키우기
  • 글자 크기 줄이기
  • 공유하기 공유하기
  • URL복사

장애물 피하기 게임 ②

《 소프트웨어(SW) 과목이 내년에는 중학교, 2019년에는 초등학교 필수 교육과정이 됩니다. 소프트웨어 수업에서는 ‘코딩’을 주로 배우지요. ‘ETRI(한국전자통신연구원) 지식이러닝연구그룹과 함께하는 코딩 놀이터’에서 게임을 만들어 보면서 코딩과 친해져 봅시다. ETRI는 정보, 통신, 전자, 방송 기술 등 ICT를 연구하는 국책기관이며, 지식이러닝연구그룹은 소프트웨어 교육, e-러닝 교육 시스템을 연구·개발하는 부서. 》

 

이번 시간에는 ‘장애물 피하기 게임’을 완성해보겠습니다.

 

 

 

‘Ball(공)’ 스프라이트(스크래치에 등장하는 주인공이나 사물)를 코딩할 차례입니다. 새로운 스프라이트 만들기 아이콘을 누르고 스프라이트 저장소에서 ‘Ball’을 가져오세요.

공이 움직일 때 소리도 나오도록 만들어볼까요? 그림의 빨간색 네모 상자 속 아이콘을 눌러 ‘저장소에서 소리 가져오기’를 실행합니다. 여러 소리를 들어보고 원하는 소리를 선택하면 된답니다.

 

 
 

본격적으로 ‘Ball’ 스크립트를 코딩해보겠습니다. 먼저 게임이 시작되는 상황을 뜻하는 ‘깃발 클릭했을 때’ 블록이 필요하지요. 다음으로 공의 처음 위치를 정해줍니다. 동작 스크립트에서 ‘x: ㉠ y: ㉡로 이동하기’ 블록을 가져오고, ㉠에는 -121, ㉡에는 -38을 적어주세요.

공이 장애물에 닿았을 때 모습이 바뀌게 만들어볼까요? 먼저 원래 모습은 형태 스크립트의 ‘모양을 ball-e로 바꾸기 블록’으로 정해줍시다.

이번 게임에서 ‘Ball(공)’은 점프를 할 때와 장애물과 닿았을 때의 움직임이 중요합니다. 이 두 가지를 코딩해볼게요. 먼저 제어 스크립트의 무한 반복하기 블록을 가져오고 제어 스크립트의 ‘만약 ㉢(이)라면’ 블록을 아래에 쌓습니다. ㉢에는 연산 스크립트의 ‘㉣ 또는 ㉤’ 블록을 넣고 ㉣에는 관찰 스크립트의 ‘위쪽 화살표 키를 눌렀는가?’를, ㉤에는 ‘스페이스 키를 눌렀는가?’를 넣습니다.

키보드의 ‘위쪽 화살표 키’와 ‘스페이스 키’를 누를 때 공이 점프하도록 ‘점프하기’ 블록도 넣어주세요. 점프하기 블록은 새로 만들어야 하는 블록이므로 ③번 과정에서 따로 설명하겠습니다.

그 아래에는 장애물과 닿았을 때 움직임을 코딩해보겠습니다. 제어 스크립트의 ‘만약 ㉥(이)라면’ 블록을 가져오고 ㉥에는 관찰 스크립트의 ‘장애물에 닿았는가?’라는 블록을 넣어주세요. 장애물에 닿을 때 모양이 달라지도록 ‘형태 스크립트의 ’모양을 ball-a로 바꾸기‘ 블록도 가져옵니다. 공에 닿았을 때 재미있는 소리도 나오도록 소리 스크립트의 ’bass beatbox 재생하기‘ 블록도 쌓으면 게임이 더욱 재미있겠지요? 마지막으로 공이 장애물에 닿으면 게임이 끝나도록 제어 스크립트의 ‘모두 멈추기’ 블록을 가져오면 됩니다.

 

 
 

점프하기 블록은 그림과 같이 추가 블록 스크립트를 누르고 ‘블록 만들기’ 기능을 이용해 새로 만들어야 합니다. ‘점프하기’와 ‘정의하기’ 블록을 만들고 하나로 합쳐주세요.

 

공이 점프하는 모습을 코딩해보겠습니다. 먼저 점프할 때마다 소리가 나도록 소리 스크립트의 ‘zoop 재생하기’ 블록을 쌓습니다.

공이 점프할 때 포물선을 그리며 자연스럽게 올라갔다 내려오도록 하기 위해 공의 y좌표를 여러 단계로 나눠 설정해봅시다. 동작 스크립트에서 ‘y좌표를 ㉠만큼 바꾸기’ 블록을 가져와 18, 14, 8, 4, 2, 1을 차례로 넣어 공이 하늘 위로 올라가는 상황을 -1, -2, -4, -8, -14, -18을 차례로 넣어 공이 다시 땅으로 떨어지는 상황을 만들어봅시다.

동작 스크립트 사이에 제어 스크립트의 ‘0초 기다리기’ 블록을 넣어주세요. 공이 움직일 때마다 약간의 시간 차이를 두기 위함이지요.

 

 

 

 

 

 

 

 

 

 

 

 

 

이제 게임이 진행되는 동안 음악이 나오도록 하는 스크립트도 만들어줍시다. 가장 먼저 이벤트 스크립트의 ‘깃발 클릭했을 때’ 블록을 가져오고, 아래에 제어 스크립트의 ‘무한 반복하기’ 블록을 쌓아줍니다. 무한 반복하기 블록 안에는 소리 스크립트의 ‘음악 끝까지 재생하기’ 블록을 넣어주세요.

 

 
 

이제 게임을 시작해볼까요? 빠르게 다가오는 장애물에 공이 부딪히지 않도록 공을 움직여봅시다.

 

▶김민경 기자 min79@donga.com

자료=ETRI 지식이러닝연구그룹 김희권 선임기술원

 

 

어린이동아 취재팀 kids@donga.com

위 기사의 법적인 책임과 권한은 어린이동아에 있습니다.

< 저작권자 ⓒ 어린이동아, 무단 전재 및 재배포 금지 >

한국지역난방공사 권지단
  • 댓글쓰기
  • 로그인
    • 어동1
    • 어동2
    • 어동3
    • 어동4
    • 어솜1
    • 어솜2
    • 어솜3

※ 상업적인 댓글 및 도배성 댓글, 욕설이나 비방하는 댓글을 올릴 경우 임의 삭제 조치됩니다.

더보기

NIE 예시 답안
시사원정대
  • 단비교육