Главная Потоковые Сервисы Взлом Minecraft на Raspberry Pi

Взлом Minecraft на Raspberry Pi



Raspberry Pi 2 - устройство на удивление способное, учитывая его цену менее 30 фунтов стерлингов. Он поставляется с предустановленной версией Minecraft, а также с API, который позволяет писать код для запуска в виртуальном мире. Вы делаете это на Python, которому легко научиться. Комбинация Pi, Python и Minecraft дает прекрасную возможность начать изучение возможностей программирования. И острые ощущения от просмотра дома, построенного на виртуальном ландшафте, тоже не только для детей.

как посмотреть оценку поведения dota 2

Скрипты в Майнкрафте

Minecraft - это игра с открытой песочницей, в которой нет сюжетной линии. Его иногда называют виртуальным Lego, поскольку игрок может построить любую структуру, используя блоки, находящиеся в его распоряжении. Версия, поставляемая с Raspberry Pi, имеет ограниченный набор функций, соответствующих ее образовательной роли, поэтому вам не нужно беспокоиться, например, о преследовании зомби. Взаимодействие с этим миром не требует специальной настройки, только последняя сборка Raspbian OS плюс среда программирования. Я бы выбрал Geany, который вы можете установить, открыв LXTerminal и набрав:

sudo apt-get install geany

Давайте начнем с создания сценария для строительства дома перед игроком - но вместо того, чтобы просто ставить его на место, мы собираемся его анимировать. Мы также собираемся встроить различные настраиваемые параметры, которые позволят игроку экспериментировать с разными размерами и материалами. Это также сделает программу модульной, чтобы ее можно было использовать в качестве основы для создания более сложных колодцев.

Чтобы код заработал, загрузите его в Geany, затем запустите Minecraft и создайте новый мир. Нажмите клавишу Tab, чтобы освободить курсор из окна Minecraft, и щелкните значок шестеренки в Geany (или нажмите F5), чтобы запустить скрипт. Вы должны увидеть, как дом волшебным образом собирается сам себя. Если нет, попробуйте развернуться - он может быть позади вас! Вы можете увидеть сценарий в действии здесь . Так как же работает сценарий? Ну, сначала открывается ссылка на Майнкрафт:

импортировать mcpi.minecraft как minecraft, время mc = minecraft.Minecraft.create ()

В Python важно обращать внимание на отступы, поскольку именно так код делится на блоки. В этом случае обе строки находятся на одном уровне с левым полем: первая строка импортирует библиотеки Minecraft и Time, а вторая создает объект Minecraft, который мы можем использовать повсюду. Следующие 25 строк устанавливают несколько переменных для блоков, которые мы собираемся использовать, чтобы мы могли называть их, скажем, wood_planks, а не по их идентификатору блока (в данном случае 5). Затем мы указываем, какие из этих блоков будут использоваться для стен, какие для крыши и так далее. Мы легко можем полностью изменить конструкцию дома, например, поменяв кирпичные стены на брусчатку. Наконец, мы устанавливаем ширину, длину и высоту желаемого жилища.

Теперь мы вызываем функцию Minecraft mc.player.getTilePos (), чтобы найти игрока в ландшафте, и возвращаемые значения затем используются для создания двух переменных, слева и снизу, чтобы описать, где будет находиться первый угол жилища. .

После этого структура скрипта совпадает с процессом строительства дома в Minecraft вручную. Мы начинаем с расчистки пространства, чтобы, если игрок решит построить дом внутри, скажем, горы, жилая зона не будет из твердого камня. Вот блок кода - функция в Python - которая делает это:

def clear_house (ядерный):
если ядерный == Истина:
blast_zone = 20
еще:
blast_zone = 0
mc.setBlocks (left-blast_zone, player_
земля, дно + blast_zone, left + width + blast_
зона, player_ground + height + blast_
зона + 10, длина-дно-blast_zone, air_block)

Когда мы вызываем clear_house, мы передаем параметр ядерный. Имеет значение Истина или Ложь. Вы можете попробовать вызвать его с помощью True, чтобы очистить больший объем вокруг целевой области, или вызвать его с помощью False, чтобы ограничить зазор внутренними размерами дома. В Minecraft функция mc.setBlocks используется для создания куба блоков путем передачи ему трехмерных координат противоположных углов, за которыми следует тип блока, который вы хотите использовать. В этом случае мы очищаем пространство, поэтому используем воздух.

Как только мы расчистили пространство, пора переходить к строительству. Каждый из этих этапов строительства выполняет свою функцию. В конце скрипта вы увидите функцию с именем main (), которая управляет ходом выполнения программы, по очереди вызывая каждую фазу построения. Разумно называя наши функции и вызывая их из main (), легко понять, что делает программа:

def main ():
clear_house (Ложь)
start_pos = [слева, снизу, player_
земля]
build_floor (start_pos)
курс = build_walls (start_pos)
add_door (door_position)
time.sleep (задержка * 10)
build_roof (start_pos, конечно)

Следующая функция, вызываемая в main (), строит пол - для этого используется mc. setBlocks снова, чтобы вырезать фундамент (для художественного эффекта), а затем добавьте куб напольной плитки глубиной в один блок, чтобы создать прочный пол в нашем доме.

как получить удаленные текстовые сообщения с iphone

Строительство стен

Функция 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_
земля + курс, current_vert, wall_block)
если направление == вверх:
current_vert- = 1
elif direction == down:
current_vert + = 1
elif direction == right:
current_horiz + = 1
еще:

current_horiz- = 1
блоки = блоки + 1 # перейти к следующему блоку
time.sleep (задержка)

Мы начинаем с сохранения начальной позиции - это будет позиция последнего блока, уложенного из предыдущего ряда блоков. Затем мы указываем, сколько блоков нужно уложить, в зависимости от того, идем ли мы по длине здания или по его ширине.

Фаза построения содержится в блоке while - он продолжается до тех пор, пока мы не уложим все блоки. mc.setBlock помещает один блок в указанные координаты, а затем увеличивает одну из этих координат на единицу в зависимости от направления укладки. Эффект состоит в том, что блоки кладут вдоль стены перед поворотом за угол и продолжают прямоугольник, пока не завершится ряд.

не удается получить почтовое соединение с сервером не удалось

Окончательная версия кода немного сложнее, добавляя окна к каждой стене. Окна имеют динамический размер, поэтому они занимают половину длины стены и располагаются по центру. Он также записывает положение двери; он добавляется после того, как будут построены стены. Курсы контролируются функцией build_walls, которая повторяет функцию build_course для каждого ряда блоков, пока не достигнет конечной высоты.

Вы даже можете попробовать построить свой дом в океане или в воздухе - сделайте это, дважды нажав пробел, чтобы лететь, затем нажмите еще раз, чтобы подняться, прежде чем запускать скрипт. Измените переменные wall_block и roof_block, чтобы увидеть, что произойдет, если вы создадите стены или крышу из золота или, действительно, из лавы. Вы можете добавить свои собственные блоки, просмотрев полный список здесь и добавив связанную переменную в скрипт. Более сложные модификации могут включать добавление в структуру нескольких этажей, если для переменной высоты задано достаточно большое значение. Например, подумайте, как добавить турели, и у вас есть задатки замка Minecraft.

Эти настройки могут показаться банальными, но я профессионально занимаюсь программированием более 20 лет и до сих пор испытываю кайф, когда фрагмент кода работает так, как задумано. Если вы никогда раньше не программировали, я надеюсь, вы попробуете - и если у вас есть поклонник Minecraft в семье, я предлагаю дать им возможность разобраться в коде и посмотреть, куда он их приведет. Вы найдете ссылки на ресурсы Minecraft Pi по адресу kevpartner.co.uk/programming .

Интересные статьи

Выбор редакции

Как стать жертвой похищения в Sims 4
Как стать жертвой похищения в Sims 4
Вы устали от обыденной рутины повседневной жизни в The Sims 4? Вы когда-нибудь хотели испытать что-то из этого мира? Затем оживите свой игровой процесс, позволив инопланетянам похитить ваших симов. Этот захватывающий и редкий
RIP Vauxhall OnStar: Vauxhall убивает свой Wi-Fi и услуги консьержа во всем своем диапазоне
RIP Vauxhall OnStar: Vauxhall убивает свой Wi-Fi и услуги консьержа во всем своем диапазоне
Служба подключения Vauxhall OnStar, которая обеспечивает бортовой Wi-Fi, а также услуги консьержа, такие как диагностика транспортных средств и бронирование гостиниц, будет отключена 31 декабря 2020 года. И, в рамках подготовки к этому, новых моделей Vauxhall не будет.
Как забыть о сети Wi-Fi на Chromebook
Как забыть о сети Wi-Fi на Chromebook
Chromebook может быть простым устройством по сравнению с другими типами ноутбуков, но он сам по себе мощный. Они отлично подходят не только для просмотра веб-страниц, но и могут делать гораздо больше с помощью подходящих приложений и
Как очистить диск C в Windows
Как очистить диск C в Windows
Вам кажется, что ваш компьютер стал работать медленнее, чем раньше? Вы начали замечать появление некоторых ошибок? Или некоторые из ваших программ требуют больше времени для запуска? Если это так, не паникуйте. Самый распространенный
Сохраняйте панель задач видимой с помощью сенсорной клавиатуры в Windows 10
Сохраняйте панель задач видимой с помощью сенсорной клавиатуры в Windows 10
Вот как сделать так, чтобы панель задач оставалась видимой с помощью сенсорной клавиатуры в Windows 10. Вы можете сделать так, чтобы панель задач оставалась видимой, когда виртуальная.
Как играть в SteamVR на Meta (Oculus) Quest или Quest 2
Как играть в SteamVR на Meta (Oculus) Quest или Quest 2
Oculus Link позволяет вам подключить Quest к компьютеру через USB-кабель и играть в любые игры Steam, поддерживающие VR.
Как узнать, удалил ли кто-то свою учетную запись Discord
Как узнать, удалил ли кто-то свою учетную запись Discord
Discord предназначен для удобного общения между игроками и друзьями, но иногда это может быть слишком сложно. Если кто-то больше не чувствует необходимости использовать службу, он может полностью удалить свою учетную запись. К несчастью,