메인 스트리밍 서비스 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 .

재미있는 기사

에디터의 선택

Instagram 다이렉트 메시지를 읽었는지 어떻게 알 수 있습니까?
Instagram 다이렉트 메시지를 읽었는지 어떻게 알 수 있습니까?
Instagram은 단순한 사진 공유 앱으로 시작했지만 강력하고 재미있고 재미있는 여러 기능을 갖춘 매우 유연한 플랫폼이 되었습니다. 그러한 기능 중 하나는 2013년 후반에 추가된 DM(다이렉트 메시지) 기능입니다. 그 이후로 DM은
Excel에서 탭 숨기기를 해제하는 방법
Excel에서 탭 숨기기를 해제하는 방법
Microsoft Excel에서 탭, 시트, 시트 탭 및 워크 시트 탭이라는 용어는 같은 의미로 사용됩니다. 모두 현재 작업중인 워크 시트를 참조합니다. 하지만 어떤 이름으로 부르든 프로젝트에 따라
Windows Live 메일에서 Outlook 메일 또는 Hotmail을 받는 방법
Windows Live 메일에서 Outlook 메일 또는 Hotmail을 받는 방법
Windows Live 메일을 사용하여 Hotmail 또는 Outlook.com 계정에 액세스할 수 있습니다. 그렇게 하려면 적절한 IMAP 이메일 서버를 설정해야 합니다.
Sega Mega Drive 클래식 게임 콘솔은 이제 블랙 프라이데이 판매에서 단 £ 34.99입니다.
Sega Mega Drive 클래식 게임 콘솔은 이제 블랙 프라이데이 판매에서 단 £ 34.99입니다.
AtGames는 SNES Classic Mini와 같은 것을 인수하여 올해 초 Sega Mega Drive의 리메이크를 출시했습니다. 작은 콘솔은 일반적으로 £ 59.99이며 모든 상징적 인 타이틀을 포함하여 인상적인 81 개의 내장 타이틀과 함께 제공됩니다.
BeReal에 연결된 Spotify 계정을 변경하는 방법
BeReal에 연결된 Spotify 계정을 변경하는 방법
Spotify 계정을 BeReal 계정에 연결했으며 'BeReal 사용자 이름 전제 조건 실패' 또는 'BeReal Spotify가 작동하지 않음'과 같은 오류가 발생했습니까? 좋아하는 Spotify 계정을 BeReal로 변경해야 할 수도 있습니다. BeReal의 최근
온라인으로 무료 음악을 들을 수 있는 최고의 장소 12곳
온라인으로 무료 음악을 들을 수 있는 최고의 장소 12곳
온라인에서 무료 음악을 들을 수 있는 최고의 웹사이트를 찾아보세요. 관심 있는 음악을 갖고 있는 사람이 누구인지 알아보고, 인기 재생 목록을 스트리밍하고, 각 사이트의 기능에 대해 읽어보세요.
Firefox에서 HiDPI 크기 조정 활성화
Firefox에서 HiDPI 크기 조정 활성화
다음은 HiDPI 화면에서 Firefox 브라우저를 더보기 좋게 만드는 트릭입니다. Firefox의 기본 크기 조정 방법을 변경할 수 있습니다.