Как программировать майнкрафт


изучаем Minecraft / Блог компании Издательский дом «Питер» / Хабр

Добрый день, уважаемые читатели!

У нас выходит второй тираж замечательной книги об игровом мире Minecraft. Мы уже публиковали о ней отдельный пост.

С удовольствием напоминаем, что этой игре все возрасты покорны, более того — она будет интересна даже дошколятам, если правильно подать смысл этой замечательной игры и пробудить в детях творческую жилку. Под катом — рассказ многодетной мамы о том, как это делается.

Наконец, если вас заинтересует перевод ознакомительной публикации Уолтера Хиггса о ScriptCraft, на которую ссылается автор в самом конце статьи — пишите, обсудим :)

Если у вас, как и у меня, есть маленькие дети в возрасте 5-10 лет, то вы, вероятно, не понаслышке знаете о всеобщем увлечении Minecraft; возможно, у вас даже есть книги и игрушки на эту тему. Я стала размышлять, может ли эта игра в кубики чему-то научить ваших детей и решила рассказать, как увлечь детей программированием за игрой в Minecraft. Мы уже пытались учиться программировать на Scratch, но Minecraft нравится детям даже больше, чем этот язык. Вот я и решила отталкиваться от Minecraft.

С чего начать

Установка

Как раз этим делом я решила не заниматься с детьми. Они маленькие, и я хотела сделать так, чтобы мы могли сосредоточиться на «самом интересном», чтобы дети сразу получали «отдачу» от программирования, а не занимались скучной настройкой прежде, чем смогут приступить к программированию. Хорошо, что я поступила именно так: при установке обнаружились некоторые закавыки, которые вполне могли бы испортить детям настроение. Кстати, мы работали на Mac.

Предварительные условия

  • При установке воспользуйтесь обычным (normal) аккаунтом. Сначала я пыталась работать с аккаунтом ребенка, активировав на нем родительский контроль. К сожалению, в таком случае не только ограничиваются возможности самого Minecraft, но и сужается набор вызовов для командной строки, которые могут понадобиться. Этот аккаунт не требует прав администратора.
  • Установите полноценную клиентскую версию Minecraft. Поскольку дети часто играют в Minecraft Pocket Edition (PE) на айпадах, мы не сразу поняли, что эта версия не позволяет подключиться к модифицированному серверу Minecraft, что мы делали при помощи CanaryMod. Клиентскую версию можно приобрести на сайте Minecraft. Обязательно подберите надежный пароль.
  • Установите Java, если еще не сделали этого. Без Java вы не сможете работать с модифицированным сервером.
  • Наконец, ссылки: убедитесь, что версии, с которыми вы работаете, совместимы друг с другом, иначе плагин ScriptCraft загрузится неправильно.

Вот с чем работала я:

Начали

Необходимо усвоить: если от вас требуется «запустить сервер», то имеется в виду следующее:

  • Откройте терминал
  • Перейдите в каталог
  • Введите
    java -jar CanaryMod-1.2.0_0.jar

Если все сработает верно, то вы должны увидеть следующее:

Обратите внимание: если вы правильно установили плагин ScriptCraft, то также должны увидеть «Found 1 plugin».
Статус завершается приглашением командной строки для рабочего сервера. Чтобы аккуратно выйти с сервера, когда все сделаете, вернитесь в терминал и просто введите «stop». Если этого не сделать и закрыть окно терминала, либо нажать Ctrl-Z, то соответствующий процесс Java так и будет висеть на том порте, где был запущен CanaryMod – по умолчанию 25565. В таком случае у вас возникнут проблемы, как только вы попытаетесь вновь запустить сервер.

Навигация в Minecraft

Если вы не играете в Minecraft регулярно (не то, что я), то убедитесь, что умеете пользоваться навигацией в игре.
Единственный вопрос, ответ на который я не нашла в онлайновых руководствах и при простом поиске в Google – как открыть дверь, не разрушая ее. В итоге я приспособилась прокладывать путь при помощи Ctrl + click. Тогда можно не сносить красивые дверцы домиков и других строений :). Странно, что дети предпочитали везде вламываться, не щадя дверей. Хмммм…

Итак, пойдем

Впервые запустив клиент Minecraft, настройте многопользовательский режим (multiplayer). В руководствах пишут, что для соединения используется просто «localhost», но на самом деле нужно задать
localhost:, где port – либо порт, задаваемый по умолчанию для CanaryMod, то есть, 25565, либо другой порт, который вы могли определить в конфигурационном файле CanaryMod.

Затем попробуйте ввести какой-нибудь текст в командную строку. Обратите внимание: командная строка есть как в самом клиенте Minecraft, так и в том окне терминала, из которого вы запускали сервер CanaryMod. Иногда кажется, что клиент реагирует не на все нажатия клавиш. Мой старший любит в таком случае говорить «что-то глючит». В таком случае нужно перезапустить клиент Minecraft, а иногда даже сервер CanaryMod.

Если вы не хотите отвлекаться на всяких монстров и тварей, пытающихся сожрать вашего персонажа, сразу установите такой игровой режим, чтобы можно было творить. Это можно сделать как в конфигурационном файле config file, так и в командной строке Minecraft, где нужно ввести: /gamemode c
. В таком случае вы с детьми сможете вплотную заняться программированием и игрой, а не спасением вашего персонажа.

Как увлечь детей

Сначала давайте убедимся, что ScriptCraft работает:

/js 1 + 1

Начинаем с упражнения, в котором учимся программно создавать блоки, для этого применяется вызов длиной в одну строку:

/js box(5,3,2,4)

Получился дубовый ящик с id 5, у которого задана ширина, глубина и высота. Он возник в воздухе, поскольку мы начали с той точки, в которой был крестик-прицел.

Дети сразу заинтересовались, а можем ли мы создать тут животных, например, коров или лошадок:

/jsp spawn cow

/jsp spawn horse

Эти вызовы отличаются от тех, что мы делали при создании блоков: перед ними ставится /js, а не /jsp. Помните команду «op»? Она позволяет делать при помощи /js мощные вызовы, которые не следует предоставлять в распоряжение всем игрокам.

Если в игровом мире начинает идти дождь или становится темно, можете показать ребенку следующие быстрые команды, позволяющие вернуть погожий солнечный день:

/time set 1000

/weather clear

Демо-версия для родителей

Мне не без труда удалось уговорить детей оторваться от игры в Minecraft и выполнить несколько простых упражнений – чтобы увлечь их программированием. Для этого вам потребуется внимательно посмотреть, чем дети занимаются в Minecraft, и подсказать им, какие вещи можно сделать гораздо быстрее, написав всего пару строк кода. Вот несколько рекомендаций на этот счет:

Покажите, как создать цилиндр из тортов (cake blocks) при помощи функции цилиндра, принимающей id торта, радиус и высоту. Моя старшая дочь была в полном восторге от того, что в этом квадратном мире можно сделать цилиндры, причем из торта (id 92). Она переключилась в режим выживания командой game mode s
и с аппетитом «поедала» тортики, в Minecraft от этого улучшается здоровье. Ах, если бы в жизни тоже так было :)

/js cylinder(92, 5, 20)

Вот что получилось (вид сверху):

Создаем домик, потом набор домиков, форт и замок. Не забывайте двигать крестик, чтобы все эти объекты не выстраивались друг на друге.
/js cottage()

/js cottage_road()

/js fort()

/js castle()

Затем покажите, как замостить одну из этих структур слизнями. Дети подсказали, что если мы так сделаем, то наш персонаж сможет весело летать в облаках и приземляться в виртуальном домике-батуте. Блоки-слизни упоминаются в gamepedia, их id 165.

Можно даже добавить в одном из строений танцпол:

/js dancefloor()

Освободите большое пространство, чтобы на нем было проще размещать разные структуры. На первый взгляд было неочевидно, как это делается, даже покопавшись на различных сайтах я не нашла четкого ответа – разве что такая возможность была в популярном моде WorldEdit. Я не решилась устанавливать малознакомый мод, но в итоге нашла кое-какой код в папке с плагином ScriptCrafts, где используются воздушные блоки. Точно, воздушные блоки! Итак, поехали:
/js box(blocks.air, 50, 50, 50)

Так можно очистить большое пространство, но на это потребуется до минуты времени, поэтому запаситесь терпением. Дети были в восхищении. Но если в этой области у вас имеются высокие деревья или горы, то их верхушки могут остаться «плавать» в воздухе. В таком случае просто еще раз примените код или поднимите эту область и переставьте крестик. Наконец, мы могли просто настроить на сервере плоский мир и для начала поэкспериментировать с ним, но тогда играть было бы менее интересно. Учтите: если задавать для этих размерностей величины 50 и более, то можно запросто обвалить сервер.

Итак, мне удалось основательно увлечь детей, они стали спрашивать, а что еще тут можно сделать. Если вы тоже заинтересовались – самое время познакомиться с другими вызовами и даже попробовать создать собственный мод.

Домашняя страница ScriptCraft
Ваш первый мод Minecraft
Справка по ScriptCraft API
Ознакомительный пост по ScriptCraft

Программы и редакторы - Официальная Minecraft Wiki

Сообщество Minecraft создало тысячи программ и модификаций , которые можно использовать для улучшения игры.

Список программ и редакторов [править]

  • Список серверного программного обеспечения настолько велик, что у него есть собственная вики. Оболочки сервера могут использоваться для управления сервером.
  • Есть несколько видов программ, которые работают с Mapping :
    • Mappers создают вид сверху на мир, обычно выводимый в виде отдельного изображения или страницы Google Maps.
    • Зрители обеспечивают интерактивный просмотр мира, иногда в 3D.
    • Редакторы карт позволяют игроку напрямую изменять мир вне игры.
    • Генераторы карт создают новые типы ландшафта и образцы блоков, которые обычно недоступны.
  • Модификации добавляют совершенно новые функции или режимы игры в основную игру Minecraft; существует ряд инструментов моддинга для их создания и установки.
  • Чтобы создавать новые объекты в моде, игроку также понадобится 3D Modeler .
  • Скиннинг и текстурирование Программы помогают создавать скины игроков и текстурировать объекты.
.

Как программировать Minecraft с Python на Raspberry Pi? - RaspberryTips

Как вы, наверное, заметили, Raspbian (настольная версия) поставляется с уже установленным Minecraft
И это не (только) для игры в
Если вы не знаете, основная цель Raspberry Pi Foundation - помочь молодым людям учиться как вычислить и запрограммировать
Они установили Minecraft Pi, чтобы помочь детям достичь этой цели, одновременно развлекаясь

Как запрограммировать Minecraft с Python на Raspberry Pi?
При новой установке Raspbian Desktop вы получаете все необходимое для программирования Minecraft:
- Minecraft Pi доступен в меню «Игры»
- Редакторы Python также доступны непосредственно в меню «Программирование» (Python 3 (IDLE) и Thonny Python IDE)

Итак, у вас уже есть все необходимое, чтобы играть в Minecraft другим способом: запрограммировав его
Давайте посмотрим, как это сделать

Введение в инструменты

Minecraft

Если вы жили в пещера последние десять лет, я кратко расскажу о Minecraft 🙂

Minecraft - это игра-песочница, в которой весь мир генерируется из блоков одинакового размера
Игрок появляется в этой среде и должен выжить, делая что угодно он хочет
Игра включает в себя сочетание исследования, строительства, крафта и боя
Да, вы также можете сражаться с пассивными или враждебными мобами (например, зомби или коровы)

Вот что это было Хорошо, как когда вы запускаете игру на Raspberry Pi:

Внизу вы получаете горячую панель, чтобы взять другой блок
А справа вы видите текущий блок, который у вас есть в руке

Язык Python

Python - это язык программирования, часто используемый на Raspberry Pi, но также и во многих системах (Google часто использует Python в своих проектах).
Python предлагает простой синтаксис и позволяет нам добавлять библиотеки (например, библиотека Minecraft, которую мы будем использовать позже)

Истории Python и Raspberry Pi вложены друг в друга, и нормально делать первую попытку в Python для каждого проекта на Raspberry Pi
И кодировать что-то в Minecraft Pi, возможно, это единственный способ 🙂

Thonny

Как я уже сказал во введении Raspbian предлагает несколько редакторов Python, уже включенных в новую установку
. В этом руководстве мы будем использовать «Thonny»
. Если вы предпочитаете другой, вы можете сделать то же самое.
Но мне нравится сохранять каждое упражнение целиком. файл, с сохранено на моем диске, вместо того, чтобы вводить каждую строку в оболочке Python и терять ее после

Вот как выглядит интерфейс:

Удобная установка

У вас хорошая установка? Нравится классическая клавиатура и мышь, стол и экран?
Если нет, я рекомендую начать с этого

В моем случае у меня есть только мини-клавиатура Bluetooth с сенсорной панелью
Это не самый простой способ сделать код

Я пробовал удаленный доступ, чтобы сделать это руководство со своего компьютера , но экран Minecraft отображается только на Raspberry Pi, на любом программном обеспечении удаленного доступа у меня только консоль
Это может помочь набрать код, но это неудобно

Так что, если возможно, положите Raspberry Pi на стол с клавиатура, мышь и экран
Так будет проще сделать все, что ниже

Я тоже пробовал на виртуальной машине, но нет возможности получить Minecraft Pi
Он работает только с процессором ARM, и у меня нет решения для подражать этой архитектуре

Первые шаги

В этой части мы начнем с основных вещей, таких как первая игра и простые команды Python

Первые шаги в Minecraft

Создайте новый мир

Первое, что нужно сделать, это начать игру и создайте новый мир

  • Запустите игру (Меню Пуск> Игры> Minecraft Pi)
    Окно немного глючит.Вы видите консоль сзади, это нормально
  • Попробуйте переместить игру сбоку от экрана, позже вам понадобится место для редактора Python
    Чтобы переместить окно, щелкните синюю полосу консоли с маленьким курсором (да у вас их два…)
  • Затем нажмите «Начать игру»
  • Теперь вы находитесь в меню «Выбрать мир». Нажмите «Создать», чтобы создать свой мир.
    Подождите несколько секунд во время генерации мира.

. Теперь вы можете управлять своим игроком с помощью мыши, чтобы увидеть мир вокруг.
. Я дам вам все клавиши управления позже

Minecraft введение в игру

Minecraft существует в нескольких режимах игры:

  • Выживание: вам нужно собирать блоки и ресурсы, создавать вещи и выживать ночью
  • Креатив: вы получаете все блоки, которые хотите, бесплатно и не можете умереть
  • Adventure: для создателей карт вы не можете разбивать блоки, но можете использовать рычаги и кнопки.
  • Spectator: нет взаимодействия, вы все время летаете, и вы можете проходить блоки.

На Minecraft Pi, поскольку это в основном обучающая игра, вы в творческом режиме
У вас уже есть меч и несколько блоков на панели быстрого доступа внизу экрана
Можно получить больше блоков (см. следующий абзац), всегда солнечно и вы c an't die

В творческом режиме можно разбивать блоки одним выстрелом, в то время как в режиме выживания это зависит от используемых вами инструментов (деревянные инструменты медленнее, чем алмазные инструменты, например)

Элементы управления

Вот все элементы управления, которые вы необходимо знать:

  • Камера: Перемещение мыши
  • Разрыв блока: Левая мышь
  • Размещение блока: Правая мышь
  • Перемещение: W, S, A, D (Z, S, Q, D на клавиатуре AZERTY)
  • Прыжки: пробел
    Автоматический прыжок включается при перемещении
    Двойной пробел включает режим полета, а затем использовать полет для набора высоты
  • Доступ к инвентарю: E
  • Пауза / выход: ESC

Попробуйте немного переместиться в своем мире Чтобы не беспокоиться о движениях

Hello world

Хорошо, давайте начнем с части кода

Start Thonny

Ok, оставьте Minecraft открытым с одной стороны и запустите Thonny
Откройте меню приложения> Programming> Thonny Python IDE
Затем сохраните новое окно на другой странице ide

В меню большое пространство для вашего кода (это как редактор файлов)
И под ним у вас есть Python Shell, чтобы увидеть, что происходит, когда вы запускаете или отлаживаете код

Первый код

В каждом новом языка, первое, что нужно выучить, - это как написать знаменитый "Hello World!"
Итак, давайте сделаем это!

Для начала введите этот код в Тонни:

 из mcpi.майнкрафт импорт майнкрафт mc = Minecraft.create () mc.postToChat («Hello world») 
  • Нажмите «Сохранить» в верхнем меню.
    Сохраните его там, где хотите (например, /home/pi/minecraft1.py)
  • Вернитесь в Minecraft, чтобы увидеть игру
    Затем введите «TAB», чтобы освободить указатель мыши.
  • В верхнем меню Thonny нажмите «Выполнить»

Проверьте, что происходит в окне Minecraft:

Пояснения

Давайте посмотрим, что мы сделали построчно

  • Первая строка:
     из mcpi.minecraft import Minecraft 

    В эту строку мы включаем библиотеку Minecraft для Python
    Итак, теперь Python знает, как разговаривать с Minecraft
    . Вы должны добавить эту строку в каждый код для Minecraft

  • Вторая строка:
     mc = Minecraft.create () 

    В этом примере мы инициализируем переменную mc
    Эта переменная представляет библиотеку в нашем коде
    Мы будем использовать ее, чтобы делать что-то в Minecraft

  • Третья строка:
     mc.postToChat ("Привет, мир ") 

    И последнее - отправить сообщение в Minecraft
    . Мы используем определенную ранее переменную mc и вызываем функцию postToChat из библиотеки Minecraft
    . Эта функция позволяет нам отправлять в Minecraft сообщение в скобках

Хорошо работа, вы знаете, как отправить сообщение в Minecraft из вашего кода Python

Изменить блок

Теперь мы можем попробовать что-нибудь забавное
Мы можем переключить блок на другой, но сначала я eed, чтобы предоставить вам дополнительную информацию о Minecraft

Координаты Minecraft

Minecraft использует координаты, чтобы узнать положение игрока, и каждый блок имеет другое положение
Положение игрока отображается в верхнем левом углу окна Minecraft:

Попробуйте чтобы переместиться и посмотреть, как он меняется
Каждый раз, когда вы перемещаетесь на один блок, один, если эти значения тоже меняются с 1

Итак, моя позиция игрока определяется тремя значениями:

  • X: 4.6 - Моя позиция восток / запад
  • Y: 0,0 - Моя высота
  • Z: -0,7 - Моя позиция север / юг

Это изображение должно помочь вам понять:

Попробуйте переместить игрока еще раз в игре и посмотрите, как меняется позиция в индикаторе
В любой момент мы знаем позицию игрока и можем использовать ее для забавных вещей

Minecraft ID блоков

Второе, что нужно знать, это как определить тип блока в Minecraft

Когда вы открываете инвентарь (E), вы можете видеть, что в Minecraft есть много доступных блоков:

В основном, каждый блок в игре имеет идентификатор, определяющий его
Камень - 1, трава - 2, Dirt is 3 и т. Д.

Итак, если мы хотим установить конкретный блок рядом с игроком, нам нужно знать только его ID
Есть веб-сайт, который вы можете использовать для получения списка ID:
https: // minecraft- идентификаторы.grahamedgecombe.com/

Я надеюсь, что у них одинаковый идентификатор в Minecraft и Minecraft Pi, потому что это сайт для ПК версии
Мы попробуем это
Выберите блок из списка веб-сайтов и запишите идентификатор, вы понадобится позже

Измените блок под плеером

Теперь вы наберете этот код в Thonny, чтобы установить блок в определенной позиции:

 из mcpi.minecraft import Minecraft mc = Minecraft.create () mc.setBlock (0, 0, 0, 56) 

Это почти тот же код, что и до
Единственная разница в том, что мы используем функцию setBlock вместо
. Параметры: x, y, z (позиция) и идентификатор блока

Я выбираю блок алмазной руды (ID 56) и позицию 0/0/0 (рядом с моей позицией игрока)
Но вы можете выбрать то, что хотите, попробуйте установить позицию близко от игрока

Вот результат в Minecraft:
Я увидел, что рядом со мной появился ромбовидный блок, когда я запустил код

Да, хорошо, но в заголовке написано «под игроком», как это сделать?

Знаю, вот весь код с небольшими изменениями:

 из mcpi.майнкрафт импорт майнкрафт mc = Minecraft.create () x, y, z = mc.player.getPos () mc.setBlock (x, y-1, z, 56) 

И все, у меня под ногами алмазный блок 🙂
Я использовал функцию player.getPos (), чтобы получить координаты игрока в реальном времени
А затем Я использовал их, чтобы установить блок именно там, где я хотел (с y-1, чтобы установить его чуть ниже)

Я научил вас основам, так что теперь мы можем перейти к более сложным вещам

Обнаружение API

В этой части , Я постараюсь объяснить вам все возможности, которые у вас есть для кодирования вашей игры Minecraft
Я не буду учить вас каждую функцию по отдельности, но я дам вам список функций, которые вы можете использовать

Я не учил найти официальную справку по API.Я не знаю, спрятано ли это где-то в Mojang, но я не нашел его
Единственная страница, которую я нашел, - это веб-сайт, связанный с книгой «Приключения в Minecraft» (проверьте ее на Amazon, это отличная книга, если вам нравится такого рода учебное пособие)

Этот веб-сайт дает вам все функции, параметры и объясняет, что они делают
Нажмите здесь, чтобы перейти на эту страницу

Телепортировать игрока

Первое, что я хочу, чтобы вы попробовали, - это телепортировать игрока в другое место
Если вы приближаетесь к 0/0, вы можете попробовать перейти на 1000/1000 благодаря коду Python за одну секунду

Если вы чувствуете, что готовы, попробуйте написать этот код самостоятельно, прежде чем проверять ответ

Вопросы

Какой Вы будете использовать функцию API для этого?
Что вам нужно?

Попробуйте, не проверяя часть ответа

Ответ

Это просто, на самом деле нам нужна только одна функция, эта:

Эта функция делает именно то, что нам нужно: телепортирует игрока куда-нибудь

Вот мой первый код:

 из mcpi.майнкрафт импорт майнкрафт mc = Minecraft.create () mc.player.setPos (100,50,100) 

Если вы в темноте, попробуйте другие числа
Я поставил 50 за высоту, потому что горы могут быть высокими, и я не хочу телепортироваться под землю
Может быть вы упадете, если 50 он будет в воздухе, но вы находитесь в творческом режиме, поэтому вы не можете умереть

Дальше

Теперь попробуйте использовать свои знания Python для улучшения этого скрипта
Допустим, мы хотим отправить игрок возвращается в исходное положение через 10 секунд после телепортации

Мы уже знаем, как получить позицию игрока и как ее телепортировать
Итак, единственное, чему я должен научить вас, это как ждать 10 секунд, хорошо?

Вот полный код для этого:

 из mcpi.майнкрафт импорт майнкрафт от времени импортный сон mc = Minecraft.create () x, y, z = mc.player.getPos () mc.player.setPos (100,50,100) сна (10) mc.player.setPos (x, y, z) 

Нажмите «Выполнить» и попробуйте
Вы точно увидите, что я сказал, телепорт, затем 10 секунд, затем обратно в первую позицию
В этом коде мы импортировать функцию «сна» из библиотеки времени (классическая библиотека в Python)
Мы используем все уже просмотренные функции и sleep (10), чтобы подождать 10 секунд между двумя телепортациями

Хорошая работа, переходите к следующему упражнению!

Построить дом

Хорошо, в этой части мы хотим построить дом вокруг игрока, не размещая сами блоки
Вы уже знаете, как получить позиции игрока и как разместить блоки рядом с ним
Итак, это просто нет?

Фундамент дома

Для начала построим пол.
Скажем, зона 5 × 5 из дерева

Если хочешь попробовать, давай
Если нет, то вот мой ответ:

 из mcpi.майнкрафт импорт майнкрафт mc = Minecraft.create () x, y, z = mc.player.getPos () mc.setBlocks (x-2, y-1, z-2, x + 2, y-1, z + 2, 5) 

Найдите плоское место и запустите код!
Да, я обманул 🙂
Вы можете использовать setBlock 25 раз, если хотите
Но setBlocks (с буквой «s») позволяет нам напрямую определять зону для заполнения одним типом блока, например:

Итак, нам нужно для заполнения зоны от x-2 / y-1 / z-2 до x + 2 / y-1 / z + 2, чтобы установить 25 блоков

После выполнения предыдущего кода вы должны получить пол вашего дома
Попробуйте построить стены и крышу в одиночку, это одно и то же
Если это слишком просто, попробуйте добавить несколько окон 🙂

Весь дом

Вот небольшой дом, который я построил с помощью своего скрипта:
Да… я неплохой с кодом, но я не лучший конструктор Minecraft 🙂

Соответствующий код здесь:

 из mcpi.майнкрафт импорт майнкрафт mc = Minecraft.create () x, y, z = mc.player.getPos () mc.setBlocks (x-2, y-1, z-2, x + 2, y-1, z + 2,5) #floor mc.setBlocks (x-2, y, z-2, x-2, y + 2, z + 2,5) # wall1 mc.setBlocks (x-2, y, z-2, x + 2, y + 2, z-2,5) # wall2 mc.setBlocks (x + 2, y, z-2, x + 2, y + 2, z + 2,5) # wall3 mc.setBlocks (x-2, y, z + 2, x + 2, y + 2, z + 2,5) # wall4 mc.setBlocks (x-2, y + 3, z-2, x + 2, y + 3, z + 2,17) # крыша mc.setBlock (x-2, y + 1, z, 20) # окно 1 mc.setBlock (x, y + 1, z-2,20) # окно 2 mc.setBlock (x + 2, y + 1, z, 20) # окно 3 mc.setBlock (x, y + 1, z + 2,0) # дверь 1 мегагерцsetBlock (x, y, z + 2,0) # дверь 2 

ID блоков Minecraft: 5 - дерево, 17 - дубовое бревно, 20 - стекло и 0 - воздух

Я использую setBlocks для создания пола, стен и крыши
Затем я использую setBlock (без «s») для создания маленького окна и дверь

Как только вы поймете логику этого скрипта, вы сможете создать то, что хотите, в Python

Взаимодействие с блоками

Последнее, что я хочу вам показать, - это взаимодействия блоков
Есть способ обнаружение взаимодействия игрока с блоком и запуск действий после этого

Этот код трудно угадать новичку, поэтому я дам его напрямую и объясню каждую строку сразу после
Вот код, который я создал по этой теме:

 из mcpi.майнкрафт импорт майнкрафт от времени импортный сон mc = Minecraft.create () пытаться: в то время как True: blockEvents = mc.events.pollBlockHits () если blockEvents: для blockEvent в blockEvents: mc.postToChat («Обнаружено попадание») x, y, z = blockEvent.pos mc.setBlock (х, у, г, 56) сон (1) кроме KeyboardInterrupt: print ("Остановлен") 

Вот некоторые пояснения к этому:

  • Этот код превращает каждый блок, которого вы касаетесь в игре (щелчок правой кнопкой мыши), в алмазную руду
  • pollBlockHits - основная функция, которую мы используем в этом коде
    Вы уже знакомы с другими функциями Minecraft
  • Поскольку мы не знаем, когда игрок коснется блока, нам нужно создать бесконечный цикл: while True
    Параметр try / except является обязательным при создании бесконечного цикла , чтобы разрешить выход (здесь это CTRL + C)
  • Мы добавляем таймер в этот цикл, чтобы не перегружать Raspberry Pi: sleep ( 1)
  • В начале цикла мы вызываем pollBlockHits чтобы получить все блоки, пораженные игроком
  • Если есть результат, мы создаем еще один цикл ( для ) для просмотра всех результатов ( blockEvent )
  • Наконец, для каждого события мы публикуем сообщение в Minecraft ( postToChat )
    Ан d затем меняем блок ( setBlock )

Скопируем этот код в Thonny, запустим и попробуем
Попробуйте изменить его, так как вы хотите быть уверенным, что понимаете мой код

Если вы не знакомы с программированием , это может быть сложно
Здесь есть понятия, не зависящие от Minecraft API, и вы не узнаете их в одной статье
Чтобы пойти дальше, вам нужно изучить основы алгоритмов и Python

Связанные вопросы

Есть ли способ делать мультиплеер? Я не тестировал, но похоже, можно подключиться к сетевой игре в главном меню, так и должно быть.Это открывает возможности для забавной игры. Например, я думаю об игре Splatoon с использованием кода «Взаимодействие с блоками», который мы видели ранее (каждый игрок устанавливает свой блок, и цель состоит в том, чтобы иметь как можно больше блоков вашего цвета в ограниченной области)

Как чтобы клавиши нажимались плеером? В справочнике Minecraft API для этого нет функции. Но вы можете получить это от всей системы. Я думаю, что библиотека Pygame может вам в этом помочь.
И в более общем плане, чтобы продолжить работу со своими скриптами Minecraft, вам необходимо научиться кодировать на Python вне Minecraft API (условия, циклы, основные библиотеки, такие как GPIO)

Каковы ограничения Minecraft Pi? Minecraft - платная игра.На Raspberry Pi вы получаете бесплатную версию, но это альфа-версия. Если вы привыкли играть в версию для ПК, вы увидите много различий. Нет ни меню конфигурации, ни мобов, ни блоков меньше. Вы даже не можете присоединиться к серверу или добавить пакет текстур. Это хорошо для кодирования, но это все. Если вы хотите большего, вам нужно купить стандартную версию (доступна для Linux, поэтому она может работать на Raspberry Pi)

Заключение

Вот оно, вы уже должны знать значительную часть Minecraft API, если следовали этому руководству целиком
И лучше всего, если вы понимаете ссылку на API
Таким образом вы сможете создавать все

Как я уже упоминал ранее, если вы хотите пойти дальше с Minecraft на Raspberry, есть отличная книга об этом: Приключения в Minecraft
Если вам нравится Minecraft и программирование, эта книга должна быть в вашей коллекции
Я даже поместил ее в свои 20 лучших книг по Raspberry Pi

,

программистов: играйте с внутренними разработками Minecraft!

Натан надеется, что предоставление сообществу Minecraft доступа к Brigadier может сделать его «в один прекрасный день чрезвычайно удобным для пользователя». В конце концов, многие игроки Minecraft все еще не используют команды. «Некоторые люди действительно не смотрят на команды, потому что они немного пугающие, и я полностью понимаю, почему», - говорит Натан. «Это должно очень помочь в этом».

Brigadier берет случайные строки текста, которые вы вводите в Minecraft, и превращает их в реальную функцию, которую будет выполнять игра (так что вам нужно поблагодарить Brigadier за все эти палочки).«Многие думают, что это действительно простая функция», - говорит Натан. «Но на самом деле реальность чрезвычайно сложна.

«Мы думали, что это будет потрясающий первый тест системы. Это отличная вещь, которую люди могут просто взять и использовать в любом проекте. Это даже не обязательно должна быть игра - я видел, как некоторые люди пытались использовать ее в чат-ботах Telegram, так что вы можете просто написать ей, и она сделает то, о чем вы просите ». Ухоженная!

Brigadier доступен только чуть больше недели, и мы уже видели, как люди пытались улучшить код и даже сделать удобный readme doc Натана немного красивее и удобнее! Подождите, вы много пишете для Натана бесплатно за ? Вы пытаетесь уволить меня с работы?

ВЕРХНИЙ ФИКСАТОР ДАННЫХ

«Имя настолько глупое, что нам пришлось оставить его», - без извинений объясняет Натан.DataFixerUpper делает именно то, что звучит, и это одна из самых важных частей игрового движка Minecraft. Это также вторая открываемая нами библиотека!

«Проблема, с которой мы сталкиваемся в Minecraft, и я почти уверен, что каждая игра есть, заключается в том, что данные меняются со временем», - говорит Натан. «Мы добавляем что-то в Minecraft, а затем нам как бы нужно изменить способ хранения данных уровня, то, как мы храним все файлы сохранения и прочее, чтобы приспособить его.

«Когда мы загружаем любой мир в Minecraft прямо сейчас, у вас могут быть данные, которые не менялись в течение шести лет, потому что этот фрагмент последний раз воспроизводился шесть лет назад.Поэтому нам нужно знать: «Хорошо, этот уровень на самом деле выглядит очень старым. Теперь нам нужно превратить эти старые данные в то, как они должны выглядеть сейчас - так, чтобы игра могла их читать ».

«У нас есть одно маленькое устройство, которое использует DataFixerUpper, которое просто говорит Minecraft:« Вот как преобразовать что-либо в формат данных, который будет использовать игра ». Итак, игра теперь только говорит: «Вот как выглядят данные, так что я собираюсь их читать».

"По сути, прежде чем Minecraft загрузит фрагменты, он проходит через DataFixerUpper и превращает его в то, чем он должен быть сейчас.”

Запутались? Это справедливо - DataFixerUpper намного менее удобен для пользователя, чем Brigadier, - но это также одна из причин, почему мы делаем его доступным для всех!

.

Как попасть в бета-версию Minecraft

Периодически мы выпускаем ранние версии обновлений Minecraft, чтобы протестировать новые функции, избавиться от морщин и устранить ошибки, прежде чем они достигнут более широкой аудитории. Кроме того, это отличный способ узнать, что нового идет в продажу.

Хотите помочь нам? Затем следуйте приведенным ниже инструкциям, но имейте в виду: бета-версии по своей природе немного нестабильны, и все может быть странным, шатким или просто неправильным. Игра может вылетать, и все, что вы строите, может быть повреждено.Это небольшой риск, но все же риск!

Не испугался? Вот что вам нужно сделать.

ИЗДАНИЕ JAVA

В Java Edition мы выпускаем обычные тестовые версии, известные как «Снимки»: просто перейдите на вкладку «Параметры запуска», включите «Снимки», а затем выберите последний снимок, щелкнув стрелку рядом с кнопкой «Воспроизвести» на главной вкладке.

Мы также проводим бета-тесты Minecraft на консолях, мобильных устройствах и Windows 10.

XBOX ONE / WINDOWS 10

Если вы ищете, как подписаться на Minecraft с RTX бета-версией Windows 10, обязательно ознакомьтесь с требованиями перед регистрацией.Вы можете прочитать больше на: https://aka.ms/rtxbetafaq

Вам необходимо иметь цифровую версию игры . Для бета-версии владельцы дисков не поддерживаются - извините!

Присоединение к бета-версии Minecraft на Windows 10 или Xbox One:

1 . Перейдите в приложение Store на Xbox One или ПК с Windows 10.

2 . Найдите приложение Xbox Insider Hub.

3 . Загрузите и установите Xbox Insider Hub.

4 .Запустите Xbox Insider Hub.

5 . Перейдите к Insider content> Minecraft Beta.

6 . Выберите Присоединиться.

7 . Получайте удовольствие и находите ошибки!

АНДРОИД

Зайдите сюда, чтобы узнать, как получить доступ к бета-версиям на Android.

Пожалуйста, сообщайте обо всех своих ошибках на bugs.mojang.com и дайте нам знать, что вы думаете о бета-версии, нажав кнопку обратной связи в игре или посетив feedback.minecraft.сеть.

Вот и все! Радоваться, веселиться!

,

Смотрите также