메인 스트리밍 서비스 Raspberry Pi에서 Minecraft 해킹

Raspberry Pi에서 Minecraft 해킹



Raspberry Pi 2는 30 파운드 미만의 가격을 고려할 때 놀라 울 정도로 성능이 뛰어난 장치입니다. 가상 세계에서 실행할 코드를 작성할 수있는 API와 함께 미리 설치된 Minecraft 버전이 함께 제공됩니다. 배우기 쉬운 Python에서이 작업을 수행합니다. Pi, Python 및 Minecraft의 조합은 프로그래밍 가능성을 탐색 할 수있는 좋은 기회를 제공합니다. 가상 풍경 위에 집이 저절로 지어지는 것을 보는 스릴은 아이들만을위한 것이 아닙니다.

아마존에서 위시리스트 찾기

Minecraft의 스크립팅

Minecraft는 따라야 할 줄거리가없는 오픈 샌드 박스 게임입니다. 플레이어가 원하는대로 블록을 사용하여 모든 종류의 구조물을 만들 수 있기 때문에 가상 레고라고도합니다. Raspberry Pi와 함께 번들로 제공되는 버전에는 교육적 역할에 적합한 제한된 기능 세트가 있습니다. 예를 들어 좀비에게 쫓기는 것에 대해 걱정할 필요가 없습니다. 이 세계와 상호 작용하려면 특별한 설정이 필요하지 않으며 Raspbian OS의 최신 빌드와 프로그래밍 환경 만 필요합니다. LXTerminal을 열고 다음을 입력하여 설치할 수있는 Geany를 선택하겠습니다.

sudo apt-get 설치 geany

플레이어 앞에 집을 짓기위한 스크립트를 만드는 것부터 시작하겠습니다.하지만 집을 제자리에 두드리는 대신 애니메이션을 적용하겠습니다. 또한 플레이어가 다양한 크기와 재질을 실험 할 수 있도록 다양한 구성 가능한 설정을 구축 할 것입니다. 이것은 또한 프로그램을 모듈화하여보다 정교한 웰링을 만들기위한 기초로 사용할 수 있습니다.

코드가 작동하도록하려면 Geany에로드 한 다음 Minecraft를 시작하고 새로운 세계를 만듭니다. Tab 키를 눌러 Minecraft 창에서 커서를 놓고 Geany에서 톱니 바퀴 아이콘을 클릭 (또는 F5 키를 누름)하여 스크립트를 시작합니다. 집이 마법처럼 조립되는 것을 볼 수 있습니다. 그렇지 않다면 뒤를 돌아보세요. 뒤에있을 수 있습니다! 작동중인 스크립트를 볼 수 있습니다. 여기 . 그렇다면 스크립트는 어떻게 작동합니까? 먼저 Minecraft에 대한 링크를 엽니 다.

mcpi.minecraft를 마인 크래프트로 가져 오기, 시간 mc = minecraft.Minecraft.create ()

Python에서는 코드가 블록으로 분할되는 방식이므로 들여 쓰기에주의를 기울이는 것이 중요합니다. 이 경우 두 줄은 왼쪽 여백과 동일합니다. 첫 번째 줄은 Minecraft 및 Time 라이브러리를 가져오고 두 번째 줄은 전체에서 사용할 Minecraft 개체를 만듭니다. 다음 25 줄은 사용할 블록에 대한 몇 가지 변수를 설정하여 블록 ID (이 경우 5)가 아닌 wood_planks로 참조 할 수 있습니다. 그런 다음 벽, 지붕 ​​등에 사용할 블록을 표시합니다. 예를 들어 벽돌 벽을 조약돌로 바꿔 집의 건축을 완전히 바꿀 수 있습니다. 마지막으로 원하는 주거지의 너비, 길이 및 높이를 설정합니다.

이제 Minecraft 함수 mc.player.getTilePos ()를 호출하여 풍경에서 플레이어를 찾은 다음 돌아 오는 값을 사용하여 주거의 첫 번째 구석이 될 위치를 설명하는 왼쪽과 아래쪽의 두 변수를 만듭니다. .

그 후 스크립트의 구조는 수동으로 집을 짓는 Minecraft 프로세스와 일치합니다. 먼저 공간을 정리하여 플레이어가 산과 같은 집을 지을 경우 거실이 단단한 돌이되지 않도록합니다. 다음은이를 수행하는 코드 블록 (Python의 함수)입니다.

def clear_house (핵) :
nuclear == True 인 경우 :
blast_zone = 20
그밖에:
blast_zone = 0
mc.setBlocks (left-blast_zone, player_
지상, 바닥 + 폭발 _ 구역, 왼쪽 + 폭 + 폭발 _
zone, player_ground + height + blast_
zone + 10, bottom-length-blast_zone, air_block)

clear_house를 호출하면 nuclear 매개 변수를 전달합니다. 값은 True 또는 False입니다. True로 호출하여 대상 영역 주변의 더 큰 볼륨을 지우거나 False로 호출하여 공간을 집의 내부 치수로 제한 할 수 있습니다. Minecraft에서 mc.setBlocks 함수는 사용하려는 블록 유형이 뒤 따르는 반대 모서리의 3 차원 좌표를 전달하여 블록 큐브를 만드는 데 사용됩니다. 이 예에서는 공간을 정리하고 있으므로 공기를 사용합니다.

공간을 정리했으면 공사로 넘어갈 시간입니다. 이러한 각 건설 단계는 자체 기능에서 발생합니다. 스크립트의 끝에는 각 구성 단계를 차례로 호출하여 프로그램 흐름을 제어하는 ​​main ()이라는 함수가 표시됩니다. 함수 이름을 현명하게 지정하고 main ()에서 호출하면 프로그램이 수행하는 작업을 쉽게 이해할 수 있습니다.

def main () :
clear_house (거짓)
start_pos = [왼쪽, 아래, player_
바닥]
build_floor (start_pos)
course = build_walls (start_pos)
add_door (문 _ 위치)
time.sleep (지연 * 10)
build_roof (start_pos, 코스)

main ()에서 호출되는 다음 함수는 바닥을 만듭니다. 이것은 mc를 사용합니다. setBlocks를 다시 사용하여 기초 (예술적 효과를 위해)를 깎은 다음 한 블록 깊이의 바닥 타일 큐브를 추가하여 우리 집에 단단한 바닥을 만듭니다.

크롬에서 시크릿 모드를 차단하는 방법

벽 만들기

build_walls 함수는 프로그램의 핵심입니다. 집의 껍질을 만드는 가장 효율적인 방법은 단단한 벽돌 입방체를 긁어 내고 clear_house를 사용하여 내부를 조각하는 것입니다. 그러나 우리는 집이 스스로 지어진 것처럼 보이기를 원하므로 블록을 하나씩 하나씩 배치해야합니다. 다음은 벽체 건축 코드의 단순화 된 버전입니다.

def build_course (start_pos, direction,
강좌):
블록 = 1
current_horiz = start_pos [0]
current_vert = start_pos [1]

방향 == 위 또는
방향 == 아래 :
number_of_blocks = 길이
그밖에:
number_of_blocks = 너비

동안 블록mc.setBlock (current_horiz, player_
ground + course, current_vert, wall_block)
방향 == 위인 경우 :
current_vert- = 1
elif 방향 == 아래 :
current_vert + = 1
elif 방향 == 오른쪽 :
current_horiz + = 1
그밖에:

current_horiz- = 1
blocks = blocks + 1 # 다음 블록으로 이동
time.sleep (지연)

시작 위치를 저장하는 것으로 시작합니다. 이것은 이전 블록 과정에서 놓인 마지막 블록의 위치가됩니다. 그런 다음 건물의 길이 또는 폭을 따라 가는지 여부에 따라 몇 개의 블록을 놓을 지 지정합니다.

빌딩 단계는 while 블록 내에 포함되어 있습니다. 모든 블록을 놓을 때까지 계속 실행됩니다. mc.setBlock은 표시된 좌표에 단일 블록을 배치 한 다음 우리가 놓는 방향에 따라 해당 좌표 중 하나를 증가시킵니다. 그 효과는 코너를 돌기 전에 블록을 벽을 따라 놓고 코스가 끝날 때까지 직사각형으로 계속되는 것입니다.

내 창 시작 메뉴가 열리지 않습니다

코드의 최종 버전은 조금 더 복잡하여 각 벽에 창문을 추가합니다. 창은 벽 길이의 절반이되고 중앙에 위치하도록 동적으로 크기가 조정됩니다. 또한 문 위치를 기록합니다. 벽이 만들어지면 추가됩니다. 코스는 최종 높이에 도달 할 때까지 각 블록 코스에 대해 build_course 함수를 반복하는 build_walls 함수에서 제어됩니다.

바다 나 공중에서 집을 지을 수도 있습니다. 스페이스 바를 두 번 눌러 비행 한 다음 다시 눌러서 스크립트를 실행하기 전에 자신을 들어 올립니다. wall_block 및 roof_block 변수를 변경하여 금 또는 실제로 용암으로 벽이나 지붕을 만들면 어떻게되는지 확인합니다. 전체 목록을 참조하여 자신의 블록을 추가 할 수 있습니다. 여기 및 관련 변수를 스크립트에 추가합니다. 더 어려운 수정에는 높이 변수가 충분히 큰 값으로 설정된 경우 구조에 여러 층을 추가하는 것이 포함될 수 있습니다. 예를 들어 포탑을 추가하는 방법을 알아 내면 Minecraft 성을 만들 수 있습니다.

이러한 조정은 사소하게 들릴지 모르지만 저는 20 년 이상 전문적으로 프로그래밍 해 왔으며 코드 조각이 의도 한대로 작동 할 때 여전히 스릴을 느끼고 있습니다. 이전에 프로그래밍 한 적이없는 경우 사용해 보셨 으면합니다. 가정에 Minecraft 팬이 있다면 코드를 풀어주고 어디로 가는지 확인하는 것이 좋습니다. Minecraft Pi 리소스에 대한 링크는 kevpartner.co.uk/programming .

재미있는 기사

에디터의 선택

삼성 TV에 웹 브라우저를 추가하는 방법
삼성 TV에 웹 브라우저를 추가하는 방법
삼성 스마트 TV에는 기본 검색에 사용할 수있는 기본 웹 브라우저가 포함되어 있지만 매우 제한적입니다. 예를 들어 이미지와 특정 파일을 다운로드 할 수 없습니다. 매우 느리다는 것은 말할 것도없고
WhatsApp Plus: 정의 및 WhatsApp과의 차이점
WhatsApp Plus: 정의 및 WhatsApp과의 차이점
WhatsApp Plus는 WhatsApp의 비공식 대안입니다. 다운로드하기 전에 알아야 할 사항은 다음과 같습니다.
Android에서 AirTag를 사용하는 방법
Android에서 AirTag를 사용하는 방법
AirTag는 Apple처럼 Android에서는 잘 작동하지 않습니다. 하지만 Android 휴대폰을 사용하여 분실된 AirTag를 검색하고 NFC를 통해 AirTag를 읽을 수 있습니다.
iPhone에서 슬로피를 찍는 방법
iPhone에서 슬로피를 찍는 방법
슬로피는 카메라 앱의 Slo-Mo 모드를 사용하여 iPhone 스마트폰에서 슬로우 모션으로 촬영한 셀카 동영상으로, 온라인으로 공유하고 게시할 수 있습니다. 만드는 방법은 다음과 같습니다.
AirPod를 노트북에 연결하는 방법
AirPod를 노트북에 연결하는 방법
Bluetooth를 사용하여 AirPod를 Windows 노트북과 MacBook에 모두 페어링할 수 있지만 iCloud가 있는 MacBook에서는 자동으로 연결될 수 있습니다.
Echo Show에서 재생 목록을 만드는 방법
Echo Show에서 재생 목록을 만드는 방법
모든 Alexa 지원 장치와 마찬가지로 Echo Show를 사용하면 간단한 음성 명령으로 좋아하는 트랙을 재생할 수 있습니다. 그러나 디스플레이도 있기 때문에 항상 듣고있는 내용을 볼 수있어
Google Pixelbook 리뷰 : 가장 매력적인 Chromebook은 누구인가요?
Google Pixelbook 리뷰 : 가장 매력적인 Chromebook은 누구인가요?
1,000 파운드는 노트북을 구입하는 데 많은 비용이 듭니다. 특히 Chromebook의 경우 더욱 그렇습니다. Google의 경량 OS는 매끄럽고 안전 할 수 있지만 Photoshop 및 Final Cut Pro와 같은 무거운 애플리케이션을 실행하지 않습니다. 아직