Главная Потоковые Сервисы Взлом 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 .

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

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

Как скрыть ячейки в Google Таблицах
Как скрыть ячейки в Google Таблицах
Google Sheets, облачная версия Microsoft Excel от Google GSuite, представляет собой универсальное программное обеспечение для работы с электронными таблицами, которое предоставляет массу различных функций как для профессионального, так и для личного использования. Из-за универсальности Таблиц пользователи должны знать, как управлять
Microsoft выпустила обновления микрокода процессора Intel 10 ноября 2020 г.
Microsoft выпустила обновления микрокода процессора Intel 10 ноября 2020 г.
Microsoft выпустила новые патчи для устранения уязвимостей в системе безопасности процессоров Intel. Обновления теперь доступны для ряда поддерживаемых версий Windows 10. Обновления были выпущены 10 ноября и касаются следующих продуктов Intel: Avoton Sandy Bridge E, EN, EP, EP4S Sandy Bridge E, EP Valley View / Baytrail Эти исправления:
Как изменить свое имя пользователя на Roblox
Как изменить свое имя пользователя на Roblox
Многие люди, которые регистрируют учетную запись в Roblox, никогда не тратят много времени, чтобы придумать имя пользователя. Некоторые люди делают это просто для проверки, а некоторые слишком взволнованы, чтобы начать создавать или играть в игры, чтобы
Ваши невысокие ожидания почти оправдаются с официальным трейлером фильма 'Эмодзи'.
Ваши невысокие ожидания почти оправдаются с официальным трейлером фильма 'Эмодзи'.
Хорошие новости для фанатов сомнительных привязок к фильмам, о которых никто не просил: теперь доступен полный трейлер к фильму Sony Emoji Movie. Честно говоря, это немного интереснее, чем тизер-трейлер,
Как заставить текст двигаться в CapCut
Как заставить текст двигаться в CapCut
Движение текста в CapCut — одна из исключительных функций приложения. Эта функция может помочь вам отшлифовать ваш краткий онлайн-контент в Instagram, Twitter и TikTok. Если вы хотите знать, как сделать текст больше на
Обзор Toshiba Satellite A500
Обзор Toshiba Satellite A500
Поскольку бюджетные ноутбуки предлагают все больше и больше по постоянно снижающейся цене, моделям средней ценовой категории приходится изрядно потрудиться, чтобы оправдать свое существование. В конце концов, когда вы можете получить отлично работающий портативный компьютер менее чем за 400 фунтов стерлингов без НДС, тогда
Как установить ISO-файл в Windows 10
Как установить ISO-файл в Windows 10
Microsoft и другие производители часто используют файлы ISO для облегчения распространения программного обеспечения. Это собирает все данные установки Windows в один файл вместе с последними функциями. В результате вам больше не нужно устанавливать несколько сжатых файлов.