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

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

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

Скачать Скачать cPro__Bento Skin для Winamp
Скачать Скачать cPro__Bento Skin для Winamp
Загрузите cPro__Bento Skin для Winamp. Здесь вы можете скачать скин cPro__Bento для Winamp. Все кредиты принадлежат оригинальному автору этого скина (см. Информацию о скине в настройках Winamp). Автор:. Скачать 'Скачать cPro__Bento Skin для Winamp' Размер: 255,85 Kb РекламаPCRepair: Исправить проблемы с Windows. Все они. Ссылка для скачивания: Нажмите здесь, чтобы загрузить
Как собрать компьютер: онлайн-руководство по созданию собственного компьютера с нуля
Как собрать компьютер: онлайн-руководство по созданию собственного компьютера с нуля
Мало что может сравниться с удовлетворением, которое вы получаете от сборки собственного ПК с нуля или от модернизации существующей модели. Поскольку цены на компьютеры ниже, чем когда-либо, это может показаться ложной экономией, но посмотрите глубже, и вы увидите
Как изменить свой профиль Netflix на телевизоре Samsung
Как изменить свой профиль Netflix на телевизоре Samsung
Netflix с более чем 150 миллионами подписчиков является одним из ведущих потоковых сервисов в мире. Благодаря простому в использовании интерфейсу и относительно недорогой модели подписки его популярность неудивительна. Хотя многим пользователям нравится смотреть
Как скопировать файлы с ПК с Windows на Linux
Как скопировать файлы с ПК с Windows на Linux
У большинства домашних пользователей есть система с двойной загрузкой, которая может загружаться из Linux, например Ubuntu, или запускаться из Windows. Этот сценарий, безусловно, является самым простым способом передачи файлов из Windows в Linux. Однако другие (деловые или личные)
Архив меток: Windows 10 build 10586 iso
Архив меток: Windows 10 build 10586 iso
Кто такой Тим Кук? Мы исследуем генерального директора Apple, сменившего Стива Джобса.
Кто такой Тим Кук? Мы исследуем генерального директора Apple, сменившего Стива Джобса.
Тим Кук одновременно является одним из самых заметных и анонимных людей на планете. Попросите кого-нибудь рассказать о нем несколько фактов, и он, скорее всего, будет ошеломлен. 57-летний мужчина попадает в заголовки новостей как
Как заставить Windows 10 отображать знакомые значки рабочего стола
Как заставить Windows 10 отображать знакомые значки рабочего стола
Давайте посмотрим, как вернуть классические значки на рабочий стол в Windows 10.