배움터
  •  [ETRI와함께하는코딩 놀이터]사과가 우수수
  • 어린이동아 취재팀
  • 2017-04-04 22:00:06
  • 인쇄프린트
  • 글자 크기 키우기
  • 글자 크기 줄이기
  • 공유하기 공유하기
  • URL복사

사과 맞추기 게임 ①

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

 

무료 프로그래밍 도구인 스크래치를 활용해 재미있는 ‘게임’을 만들어 봅시다. 스크래치 홈페이지(scratch.mit.edu)에 들어가 메인 화면에서 ‘만들기’를 마우스로 클릭해주세요.

 

이번 시간에는 공을 던져 하늘에서 내려오는 사과를 맞추는 게임을 만들어 보겠습니다.

 

코딩, 시작!
 
 

먼저 게임의 배경 화면을 만들어 줍니다. 빨간색으로 표시된 아이콘을 클릭하면 여러 배경이 나옵니다. 마음에 드는 배경을 선택하세요. 선택된 배경은 ‘blue sky’입니다.

 

 
 

이제 스프라이트(스크래치에 등장하는 주인공이나 사물)를 화면에 넣을 차례. 이번 게임에서는 하늘에서 떨어지는 ‘사과’ 스프라이트, ‘공’ 스프라이트, 공을 던지는 ‘유령’ 스프라이트가 필요합니다.

먼저 유령 스프라이트를 선택한 다음 그림 속 2번처럼 ‘모양 탭’을 클릭합니다. 이제 스프라이트의 크기를 화면에 맞춰봅시다. 그림 3번의 아이콘은 스프라이트의 크기를 줄여줍니다. 이 아이콘을 눌러 유령 스프라이트의 크기를 ‘가로 99 × 세로 95’로 줄여주세요. 같은 방법으로 사과 스프라이트는 ‘가로 40 × 세로 40’, 공 스프라이트는 ‘가로 37 × 세로 37’로 크기를 조절합니다.

 

 
 

본격적으로 코딩을 시작해봅시다. 유령 스프라이트부터 시작하지요. 먼저 게임 시작을 알리는 ‘깃발 클릭했을 때’ 블록을 이벤트 스크립트에서 가져옵니다. 아래에는 제어 스크립트의 ‘무한 반복하기’ 블록을 쌓아주세요.

다음으로는 제어 스크립트의 ‘만약 ㉠(이)라면’ 블록을 쌓습니다. ㉠에는 관찰 스크립트의 ‘마우스를 클릭했는가?’ 블록을 넣어줍니다. 클릭하는 쪽을 유령이 바라보도록 하기 위해 그 아래에는 동작 스크립트의 ‘마우스 포인터 쪽 보기’를 넣어줍니다. 마지막으로 제어 스크립트에서 ‘㉡초 기다리기’ 블록을 가져와 ㉡에는 0.1을 적어주세요.

 

 
 

이제 사과 스프라이트를 코딩해요. 게임을 시작할 때는 점수가 0이 되도록 설정해봅시다. 이벤트 스크립트에서 ‘깃발을 클릭했을 때’ 스크립트를 가져옵니다. 그 아래에 데이터 스크립트에서 ‘㉠을(를) ㉡로 정하기’ 블록을 쌓습니다. ㉠에는 점수, ㉡에는 0을 넣어주세요. 다음에는 형태 스크립트의 ‘숨기기’ 블록을 넣어주세요.

이제 게임을 하는 동안 사과 여러 개가 하늘에서 떨어지도록 만들어봅시다. 제어 스크립트에서 ‘무한 반복하기’ 블록을 가져오세요. 그 안에 제어 스크립트의 ‘㉢초 기다리기’ 블록을 넣습니다. ㉢에는 연산 스크립트에서 ‘㉣부터 ㉤사이의 난수’ 블록을 가져옵니다. ㉣에는 0.3, ㉤에는 0.7을 넣어주세요. 마지막으로 제어 스크립트의 ‘나 자신 복제하기’ 블록을 쌓아줍니다. ‘나 자신 복제하기’ 스크립트는 사과가 여러 개 나오도록 사과를 복제하는 스크립트랍니다.

 

 
 

이제 사과가 떨어질 때를 코딩해볼게요. 이벤트 스크립트에서 ‘복제되었을 때’ 블록을 가져옵니다. 아래에는 형태 스크립트의 ‘보이기’ 블록을 쌓습니다. 다음으로 동작 스크립트에서 ‘x: ㉠ y: ㉡로 이동하기’ 블록을 가져오세요. ㉠에는 연산 스크립트에서 ‘㉢부터 ㉣사이의 난수’를 가져옵니다. ㉢에는 -150, ㉡과 ㉣에는 200을 적습니다.

사과가 계속 하늘에서 떨어지도록 만들어봅시다. 제어 스크립트에서 ‘무한 반복하기’ 블록을 가져옵니다. 그 안에는 제어 스크립트의 ‘만약 ㉥이라면’ 블록을 넣어주세요. ㉥에는 ‘y좌표 < ㉦(이)라면’ 연산 블록을 넣고 ㉦에 -145를 적습니다. 사과가 화면 아래로 사라질 때를 뜻하는 것이지요. 이벤트 스크립트의 ‘실패 방송하기’ 블록도 아래에 쌓아줍니다. 사과가 화면 아래까지 떨어지면 ‘실패’라고 문구가 뜹니다. 마무리로 스크립트의 ‘숨기기’ 블록을 아래에 넣어주세요.

그렇다면 사과가 공에 닿을 때도 코딩해야겠지요. 제어 스크립트에서 ‘만약 ㉧(이)라면’ 블록을 가져옵니다. ㉧에는 관찰 스크립트에 있는 ‘Ball(공)에 닿았는가?’ 블록을 넣습니다.

사과가 공에 닿았을 때 점수가 올라가게 만들기 위해서는 데이터 스크립트의 ‘점수를 ㉨만큼 바꾸기’ 블록이 필요합니다. 마지막으로 제어 스크립트에서 ‘이 복제본 삭제하기’를 넣어야 공에 닿은 사과가 사라지게 됩니다. 다음 시간에는 게임을 완성해봅니다.

 

▶김민경 기자 min79@donga.com

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

 

 

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

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

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

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

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

더보기

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