스포츠동아 채널A VODA MLBPARK 블로그
 
 
 
전체보기
뉴스 쏙 시사 쑥
눈높이 사설
어동 찬반토론
똑똑한 그래픽뉴스
Around the World
Art & Entertainment
- 홍호표 박사의
 고전으로 가요 읽기
- 초등SNS 에서는
- 어린이채널
Fun
- 재미+배움 놀이터
- 힐링이 필요해
- 어동 고민상담실
- 알쏭달쏭 심리테스트
- 지금 어동 카페에서는
- The 리더
- 팀 홍명보 스토리
IT & Science
- 생각 지존
알립니다



 

어린이뉴스 전체보기
 
[ETRI와함께하는코딩 놀이터]포물선 그리며 점프!
장애물 피하기 게임 ②

《 소프트웨어(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 지식이러닝연구그룹 김희권 선임기술원

 

 


      
ⓒ 동아일보 & donga.com, 무단 전재 및 재배포 금지
2017.05.17 22:00 입력

다음 이미지는 클릭!

[Science]똑똑, 거기 누구 있나요? [2017/02/21]
[Science]‘수원청개구리’ 탐사하러 떠나자 [2017/02/15]
[Science]꼬리보다 목숨이 중요해 [2017/02/15]
[Science]물로 만든 로봇 등장 [2017/02/08]
[Science]빙하 사라지고 사막 늘어나고 [2017/02/08]
[Science]렌즈 두께 달라지는 ‘스마트 안경’ [2017/02/01]
[Science]“토끼야, 이제 울지마” [2017/02/01]
[Science]사람 태우는 드론 출동! [2017/01/25]
[Science]공무원증 대신 ‘얼굴’로 인식 [2017/01/18]
[Science]한 번의 충돌? 여러 번의 충돌? [2017/01/18]
1  2  3  4  5  6 7  8  9  10 
글쓴이 제목