화산이 폭발하면 용암이 흘러내리고 화산재와 화산가스가 분출돼요. 보통 지진과 동반되어 일어나기 때문에 매우 위험한 자연 현상이지요. 우리나라에도 백두산과 한라산과 같은 화산이 있어요. 이번 시간에는 화산 폭발을 마인크래프트에 구현해 볼게요!
첫 번째 화산 만들기
‘원 모양 만들기’ 명령블록을 이용해 원뿔 형태로 화산을 만들어 볼게요.
➊ 코드 작성기에서 채팅명령어를 ‘1’로 약속하세요.
➋ ‘변수-변수 만들기’를 눌러 ‘반지름’, ‘높이’, ‘분화구 위치’ 변수를 각각 만드세요. 이어서 ‘변수-변수에 저장’ 명령블록을 가져와 화면과 같이 코드를 작성하세요.
➌ ‘반복-반복(for)’ 명령블록을 가져와 ‘index’에 변수 ‘높이’를 넣고 반복 값은 ‘20’으로 바꾸세요.
➍ ‘모양-원 모양 만들기’ 명령블록을 가져와 블록 값을 ‘기반암’으로 바꾸세요.
➎ ‘계산-더하기’ 명령블록과 변수 ‘높이’를 가져와 중심 좌표에 화면과 같이 넣으세요.
➏ 반지름 값에 변수 ‘반지름’을 가져와 넣으세요.
➐ 방향을 ‘y좌표(위쪽, 아래쪽)’로 바꾸세요.
➑ ‘변수-변수 값 증가’ 명령블록을 가져와 화면과 같이 코드를 작성하세요.
➒ ‘모양-원 모양 만들기’ 명령블록을 가져와 블록 값을 ‘공기블록’으로 바꾸세요.
➓ 중심 좌푯값을 화면과 같이 입력하고 방향은 ‘y좌표(위쪽, 아래쪽)’로 바꾸세요.
11 같은 방법으로 ‘원 모양 만들기’ 명령블록을 추가하고 중심 좌표를 바꾸세요.
12 ‘변수-변수에 저장’, ‘좌표-상대좌표’, ‘원점으로 만들기’ 명령블록을 가져와 화면과 같이 코드를 작성하여 분화구 위치의 변숫값을 정하세요.
잠깐! ‘원점으로 만들기’ 명령블록은 어떤 기능을 하나요?
상대좌표로 표현된 좌푯값을 절대좌표로 바꾸어 주는 역할을 해요. 이 명령블록을 사용한 이유는 화산은 상대좌표를 이용해 플레이어의 위치를 기준으로 건축하고, 화산 폭발 과정은 절대좌표로 구현하기 위해서예요. 화산폭발 과정도 상대좌표로 구현한다면 플레이어가 움직이면서 화산을 관찰할 수 없답니다.
두 번째 용암과 폭발 구현하기
분화구에서 흘러내리는 용암은 용암블록으로, 폭발은 TNT블록으로 표현해 볼게요.
➊ 코드 작성기에서 채팅명령어를 ‘2’로 약속하세요.
➋ ‘모양-원 모양 만들기’ 명령블록을 가져와 블록 값을 ‘용암블록’으로 바꾸세요.
➌ ‘좌표-좌표 더하기’, ‘월드좌표’ 명령블록과 ‘변수-분화구 위치’를 가져와 화면과 같이 코드를 작성하세요. 앞서 설정했던 분화구 위치에서 두 칸 올라간 곳이 용암이 흘러나오는 중심 좌표가 되도록 했어요.
➍ 반지름 값은 ‘10’, 방향은 ‘y좌표(위쪽, 아래쪽)’로 바꾸세요.
➎ ‘반복-반복(while)’ 명령블록을 가져와 조건을 ‘참(true)’으로 바꾸세요. 조건이 항상 참이기 때문에 아래 코드가 반복해서 실행돼요.
➏ ‘모양-원 모양 만들기’ 명령블록을 가져와 블록 값을 ‘TNT블록’으로 바꾸세요.
➐ 중심 좌푯값에 변수 ‘분화구 위치’를 넣으세요.
➑ 반지름 값은 ‘9’, 방향은 ‘y좌표(위쪽, 아래쪽)’로 바꾸세요.
➒ ‘몹-소환’, ‘몹-마법 발사’, ‘변수-분화구 위치’를 가져와 화면과 같이 코드를 작성하세요. 불 붙은 TNT블록이 터지면 주변에 설치된 TNT블록까지 연달아 폭발하게 만드는 명령이에요.
➓ ‘반복-일시중지’ 명령블록을 가져와 시간을 ‘10000ms(10초)’으로 바꾸세요. 용암이 화산에서 흘러나오는 게 10초마다 반복되도록 하는 명령이에요.
세 번째 화산재 표현하기
화산재는 모래블록이 떨어지는 것으로 표현해 볼게요.
➊ 코드 작성기에서 채팅명령어를 ‘3’으로 약속하세요.
➋ ‘반복-반복(while)’ 명령블록을 가져와 조건을 ‘참(true)’으로 바꾸세요. 조건이 항상 참이기 때문에 아래 명령이 반복해서 실행돼요.
➌ ‘블록-블록 놓기’ 명령블록을 가져와 블록 값을 ‘붉은 모래블록’으로 바꾸세요.
➍ ‘위치-랜덤 위치 선택’, ‘좌표 더하기’, ‘월드좌표’ 명령블록과 변수 ‘분화구 위치’를 가져와 화면과 같이 코드를 작성하세요. 분화구가 있는 위치를 중심으로 x좌푯값이 20만큼 작은 곳부터 20만큼 큰 곳까지, y좌푯값이 20만큼 큰 곳에서 30만큼 큰 곳까지, z좌푯값이 20만큼 작은 곳에서 20만큼 큰 곳까지의 위치 중에서 무작위로 선택된 곳에 블록을 놓는 명령이에요.
➎ ‘반복-일시중지’ 명령블록을 가져와 시간을 ‘100ms(0.1초)’으로 바꾸세요. 0.1초마다 블록을 놓도록 하는 명령이에요.
➏ ‘코드 시작’ 버튼을 누르고 ‘Alt+Tab’을 눌러 마인크래프트로 돌아가세요. 화산을 만들고 싶은 곳의 땅에서 30칸 정도 위로 이동한 뒤 채팅명령어 ‘1’을 실행하세요. 건축이 끝날 때까지 움직이지 말고 기다리세요.
➐ 채팅명령어 ‘2’와 ‘3’을 차례로 입력해서 화산 폭발 과정을 관찰해 보세요.