마인크래프트에서 월드를 만들 때 블록을 부수고 지형을 정리하는 힘든 일을 해야 해요. ‘플레이어’가 특정 행동을 할 때마다 이런 일이 자동으로 실행되게 만들면 어떨까요? 험난한 마인크래프트 월드를 탐험하고 생존해가는 주인공인 ‘플레이어’로 편하게 게임해 봐요!
첫 번째 주변 블록, 저절로 정리된다!
플레이어가 달리면 자동으로 지형이 정리되는 코드를 작성해 볼게요.
➊ 코드 작성기의 ‘플레이어’ 카테고리에서 ‘플레이어가 걷고 있으면 실행’ 명령블록을 가져오세요. 이어서 ‘걷고’를 ‘달리고’로 바꿔 주세요.
➋ ‘블록’ 카테고리에서 ‘블록 채우기’를 가져와 ➊ 명령블록에 연결한 뒤 블록을 ‘공기’로 바꾸고 그림과 같이 좌표를 입력하세요. ‘블록 채우기’ 명령은 시작좌표부터 끝좌표까지 선택한 블록으로 채우는 명령이에요.
➌ ‘블록 채우기’ 명령블록을 하나 더 가져와 그림과 같이 좌표를 입력하세요.
➍ Alt+Tab을 눌러 게임으로 돌아가 ctrl키를 누르며(달리기) 이동해 보세요. 플레이어가 달리면 주변 블록이 없어지고 플레이어 아래에는 잔디블록이 놓여요.
잠깐! 좌표가 무엇인가요?
3차원 게임인 마인크래프트는 세 가지 숫자로 위치를 표시해요. 이 숫자들은 각각 ‘x’, ‘y’, ‘z’ 좌표라고 불리며, 게임 화면 왼쪽 위에 표시되지요(). ‘x’는 동서 방향의 위치, ‘z’는 남북 방향의 위치, ‘y’는 위 아래 방향의 위치를 의미해요. 숫자 앞에 ‘-’가 붙어 있다면 반대 방향이라는 뜻이에요. 플레이어를 움직이며 좌표가 바뀌는 것을 보면 쉽게 이해할 수 있답니다. 만약 좌표가 보이지 않는다면 ‘설정-게임-월드옵션-
’를 켜 주세요.
두 번째 꽃길, 저절로 생긴다!
주변 지형이 정리가 되었다면 예쁜 꽃길을 만들어 월드를 꾸며 볼게요.
➊ 코드 작성기의 플레이어 카테고리에서 ‘플레이어가 걷고 있으면 실행’을 가져와 ‘걷고’를 ‘웅크리고’로 바꿔 주세요.
➋ 블록 카테고리에서 ‘블록 놓기’를 가져와 ➊ 명령블록에 연결한 뒤 블록을 ‘잔디길’로 바꾸고 좌표를 그림과 같이 바꿔 주세요. 잔디길은 플레이어 아래에 3칸 너비로 설치되도록 했어요.
➌ ‘블록 놓기’ 명령블록을 두 개 더 추가한 뒤, 블록을 ‘자작나무 울타리’로 바꾸고 좌표를 입력해 주세요. 잔디길 양옆에 울타리가 만들어져요.
➍ ‘블록 놓기’ 명령블록을 4개 더 추가한 뒤, 블록을 적당한 꽃으로 바꾸고 좌표를 입력해 주세요. 울타리 양옆에 꽃이 만들어지도록A 했어요.
➎ Alt+Tab을 눌러 게임으로 돌아가 shift키를 누르며(웅크리기) 이동해보세요. x방향으로 꽃길이 만들어지지요? 플레이어를 z방향으로 이동시키며 연결된 길을 만들어 주세요.
잠깐! 상대좌표와 절대좌표가 뭘까요?
‘상대좌표’는 플레이어를 기준으로 위치가 얼마나 떨어져 있는지를 표시한 좌표를 말해요. 좌표값 앞에 ‘~’를 붙여 표시한답니다. 꽃길을 만드는 코드는 플레이어의 움직임에 따라 블록을 설치해야 하므로 상대좌표를 사용하는 것이 편해요. 반면에 ‘절대좌표’는 게임화면 왼쪽 위에 표시되는 좌표예요. 플레이어의 위치에 따라 기준점이 변하는 상대좌표와 달리, 절대좌표는 기준점이 변하지 않는답니다.
세 번째 닭을 소환하라!
닭은 먹거리와 깃털을 주는 유용한 가축이에요. 필요한 만큼 소환하는 코드를 작성해 볼게요.
➊ 코드 작성기에서 ‘채팅명령어를 입력하면’ 명력블록에 ‘1’을 입력하고, ‘+’버튼을 눌러 ‘num1’ 변수를 추가하세요.
➋ 반복 카테고리에서 ‘반복 실행’을 가져와 ➊ 명령블록에 연결한 뒤, 변수 카테고리에서 ‘num1’을 가져와 그림과 같이 연결하세요.
➌ 몹 카테고리에서 ‘소환 동물’을 가져와 ➋ 명령블록에 연결한 뒤 그림과 같이 좌표를 바꿔 주세요.
➍ Alt+Tab을 눌러 게임으로 돌아가 채팅명령어 ‘1 10’을 실행하세요. 여기서 ‘1’은 닭을 소환하는 채팅명령어이고 ‘10’은 명령을 반복하는 횟수를 의미해요. ‘10’ 대신 닭을 소환하고 싶은 수만큼 바꾸어 입력할 수도 있답니다.
잠깐! 코드가 갑자기 실행되지 않는다면?
코드 작성기 오른쪽 아래 코드 실행 버튼이 정지 버튼 상태()로 바뀌어 있는지 확인하세요. 코드가 수정되면 자동으로 코드 실행은 멈추게 된답니다.
네 번째 화살을 무한대로 얻어라!
화살을 쓰면 자동으로 새로운 화살을 얻는 코드를 작성해 볼게요.
➊ 코드 작성기의 플레이어 카테고리에서 ‘화살을 쏘면 실행’ 명령블록을 가져오세요.
➋ 몹 카테고리에서 ‘블록이나 아이템 주기’를 가져와 ➊ 명령블록에 연결하고, 블록 카테고리에서 ‘아이템’을 가져와 연결한 뒤 아이템을 ‘화살’로 바꿔 주세요.
➌ Alt+Tab을 눌러 게임으로 돌아가 활과 화살을 준비한 뒤 화살을 쏘아 보세요. 그러면 새로운 화살이 생겨나요. 화살이 늘어나는 것을 정확히 확인하려면 서바이벌 모드로 바꾸세요.
다섯 번째 죽은 위치 저장하기
플레이어가 죽으면 가지고 있던 아이템을 죽은 위치에 모두 버리게 되죠. 이를 다시 줍기 위해 죽은 위치를 찾아 돌아가는 것은 힘들어요. 플레이어의 위치를 저장하고 죽으면 그곳으로 순간이동하는 코드를 작성해 볼게요.
➊ 코드 작성기의 플레이어 카테고리에서 ‘만약 아이템을 사용하면’ 명령블록을 가져오세요.
➋ 변수 카테고리에서 ‘’를 눌러 ‘플레이어위치’라는 변수를 생성하세요.
➌ 변수 카테고리에서 ‘플레이어위치에 저장’ 명령블록을 가져와 그림과 같이 연결한 뒤 플레이어 카테고리에서 ‘플레이어 절대좌표’를 가져와 연결하세요.
➍ 플레이어 카테고리에서 ‘채팅창에 말하기’ 명령블록을 가져와 연결한 뒤 ‘저장완료’를 입력하세요.
➎ 플레이어 카테고리에서 ‘플레이어가 사망하면 실행’ 명령블록을 가져온 뒤, 반복 카테고리에서 일시중지를 가져와 연결하고 정지 시간을 ‘1000’으로 바꾸세요. 1000ms는 1초를 의미해요.
➏ 플레이어 카테고리에서 ‘다음 좌표로 텔레포트’ 명령블록을 가져와 연결하고, 변수 카테고리에서 변수 ‘플레이어위치’를 가져와 그림과 같이 연결하세요.
➐ Alt+Tab을 눌러 게임으로 돌아간 뒤, ‘설정-게임-월드옵션-’을 켜 주세요.
➑ 철제 삽을 손에 들고 마우스 오른쪽 클릭한 뒤 ‘저장완료’라는 메시지가 나오는 것을 확인하세요. 현재 플레이어의 위치가 부활되는 곳으로 저장되었어요. 그리고 플레이어가 죽으면 저장된 위치로 순간이동하는 것을 확인할 수 있어요.
잠깐! 변수가 무엇인가요?
변수는 값을 저장해두는 장소라고 생각하면 쉽습니다. 변수에 입력하는 값은 바뀔 수 있고 꺼내서 쓸 수도 있어요. 변수는 코딩에서 자주 사용되는 개념이니 잘 이해해 두면 좋아요.