Современные дети и подростки любят играть в Майнкрафт: они проводят часы за компьютером, исследуя виртуальную вселенную. Гейминг здесь – одна из основ формирования неподдельного интереса к программированию, поэтому предлагаем использовать это увлечение для погружения ребенка в написание кода. Как? С помощью создания комнаты испытаний в Майнкрафте.

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

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

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

А теперь давайте приступать.

Бесплатный урок создания модов в Minecraft на Python на примере проекта «Комната испытаний»

Начнем с теории: наш проект – почти хоррор, ведь задача игрока – выбраться из комнаты, где потолок медленно опускается вниз. При этом мы усложним игру и сделаем так, чтобы было необходимо собрать требуемое количество алмазных блоков, прыгая на них. Скорость – залог выживания: если потолок в помещении коснется персонажа, игрок проиграет. А еще предлагаем дополнительно усложнить игру и создать огонь, прикосновение к которому будет приводить к проигрышу.

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

Мы предусмотрели два вводных видео, в которых показано, как установить Майнкрафт и Python на ПК с операционными системами:

Преподаватель школы Pixel рассказал, что и где нужно скачать и как запустить программы. В конце каждого видео показана среда IDLE: запомните ее, потому что код мы будем писать именно там.

Загружаем базовые элементы: основы создания карты комнаты испытаний в Майнкрафте

Давайте создадим Python-файл и назовем его Scary Room (страшная комната). Дальнейшие шаги следующие:

  1. Импорт библиотек и модулей. Это minecraft, block, time и minecraftstuff.

  2. Создание переменной mc. Она будет предназначена для хранения команды, выполнение которой приводит к подключению языка «Питон» к виртуальному миру Minecraft.

  3. Объявление переменной mcdrawing. Ее потребуется приравнять к функции MinecraftDrawing из уже подключенного модуля minecraftstuff. Атрибутом сделаем mc. Теперь каждый раз, когда мы будем обращаться к объявленной переменной, можно добавлять новые фигуры в игру.

  4. Введение переменной resp. Ее мы будем использовать для хранения сведений о позиции персонажа. Дополнительно введем переменные p и s: первая будет содержать id алмазного блока, вторая – размеры условного дома, то есть комнаты. Все стороны зададим на уровне 15 единиц.

  5. Создание переменной game. Ей мы присвоим значение True.

Так, в основах разобрались. Двигаемся дальше.

Создаем комнату испытаний в Minecraft

Вот что будем делать дальше:

  1. Создадим бесконечный цикл.

  2. Объявим новую переменную, где будут храниться жизни персонажа.

  3. Построим комнату со стенами и алмазными блоками.

Последний пункт особенно интересен, поэтому предлагаем рассмотреть его подробно. Нам нужно:

  1. Расчистить пространство для создания комнаты.

  2. Применить функцию setBlocks. Она принимает 7 аргументов: первые 3 – базовая точка, еще столько же – дополнительная. Пространство между ними нужно заполнить блоками. Их id мы укажем в седьмом аргументе.

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

  4. Создать стены из кирпича и добавить алмазные блоки. Их разместим на полу, в седьмой аргумент поместим переменную p с требуемым id.

Дорабатываем детали, прописываем условия игры «Страшная комната» в Майнкрафте

Следующие шаги, необходимые для выполнения сегодняшнего проекта, такие:

  1. Введение функции setTilePos. Она нужна для переноса игрока в комнату.

  2. Применение функции posToChat. В нашем случае она будет использоваться для вывода сообщений в чат.

  3. Остановка игры с помощью sleep. Функция находится в модуле time.

  4. Программирование вывода правил в чат. Дополнительно потребуется остановить игру еще на 10 секунд. Они нужны, чтобы потенциальный игрок успел изучить правила. Дополнительно давайте настроим вывод пожелания удачи.

Вот как будем двигаться дальше:

  1. Создадим переменную h. Она пригодится для хранения высоты потолка в нашей комнате. Его мы выполним из светящегося камня.

  2. Объявим переменные mission и power. Первой присвоим значение True, вторую будем использовать для хранения очков. Сначала возьмем 0. Также введем переменную timer2: она сделает опускание потолка постепенным.

  3. Напишем цикл while mission. Он будет бесконечным и связанным с активной миссией. Дополнительно введем переменную timer и присвоим ей значение 1.

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

  1. Поместим текущую позицию игрока в pos.

  2. Сохраним в b блок, находящийся под ногами игрока.

  3. Создадим и проверим условия. Нам нужно, чтобы переменная power увеличивалась на 1, когда персонаж стоит на алмазном блоке; дополнительно необходимо, чтобы в чат выводилось сообщение о количестве набранных очков. После сбора алмаз должен исчезать и становиться воздушным блоком, а переменная timer – нулевой. При этом за пределами условной конструкции нужно вычитать единицу из текущего значения данной переменной и увеличивать timer2.

Финальные штрихи

Мы знаем, как сделать комнату в Майнкрафте, но до выполнения сегодняшнего проекта пока далеко. Давайте:

  1. Напишем ряд проверок. Речь о новом условии. Так, если 10 блоков из алмаза собраны, а power имеет соответствующее значение, то должен появляться выход.

  2. Изменим функцию setBlocks. При выполнении отмеченного условия она должна создавать два пустых блока в стене и выводить сообщение об открытии входа. Переменная power в этом случае обнуляется.

  3. Создадим условие опускания потолка. H должна уменьшаться на единицу.

  4. Запрограммируем setBlocks так, чтобы она заполняла пространство сверху светящимся камнем. Это нужно, чтобы комната постепенно уменьшалась.

Теперь запрограммируем пожар. Для этого:

  1. Установим появление огня в случае, если timer2 содержит значение на уровне 40.

  2. Напишем скрипт для уменьшения количества жизней при условии соприкосновения персонажа с пожаром.

  3. Создадим добавление препятствия в виде линии из листьев при timer2 со значением 60. Поможет функция drawLine.

Также установим еще одно условие: если жизни игрока закончились, mission получает значение false. В чат будет выводиться сообщение с информацией о завершении игры. При этом сделаем так, чтобы процесс остановился на 0,5 секунды и запустился вновь.

Теперь нам нужно создать еще одно условие проигрыша – соприкосновение светящегося камня с головой персонажа. Дополнительно запрограммируем следующее: выход игрока из комнаты приводит к тому, что game и mission обретают значения false, в чат выводится сообщение о выигрыше и комната исчезает.

Бонус: код целиком и обучающее видео

Мы разобрались, как построить комнату в Майнкрафте и сделать из нее полноценный игровой проект. Очень надеемся, что все получилось!

Ниже представлены структура и все строки кода целиком.

Скрипт для комнаты в Minecraft
Скрипт для комнаты в Minecraft
Код для создания помещения на Python
Код для создания помещения на Python

А вот видеоурок Minecraft для детей. В ролике преподаватель школы Pixel рассказал, как выполнить проект «Комната страха» с помощью языка «Питон».


Хотим подвести итог и отметить, что обучать детей программированию – не столько перспективно, сколько полезно. Занятия учат детей мыслить логически, воспитывают их внимательность и приближают к IT. И не важно, как проходит обучение: самостоятельно или на курсах.

Материал подготовлен школой Pixel. Мы учим детей 5–17 лет использовать различные IT-инструменты и писать код, создавать сайты, игры и трехмерные модели, компьютерную графику, а также раскрывать собственный потенциал в мире информационных технологий. Заглядывайте на наш курс по Minecraft и Python для детей 9-13 лет.

Комментарии (4)


  1. SquareRootOfZero
    06.10.2024 19:25
    +1

    Картинки с примерами кода хорошо бы в формате jpeg перезалить.


  1. AllSoliton
    06.10.2024 19:25
    +4

    Скрытый текст
    1. Импорт библиотек и модулей. Это minecraft, block, time и minecraftstuff.

    2. Создание переменной mc. Она будет предназначена для хранения команды, выполнение которой приводит к подключению языка «Питон» к виртуальному миру Minecraft.

    3. Объявление переменной mcdrawing. Ее потребуется приравнять к функции MinecraftDrawing из уже подключенного модуля minecraftstuff. Атрибутом сделаем mc. Теперь каждый раз, когда мы будем обращаться к объявленной переменной, можно добавлять новые фигуры в игру.

    4. Введение переменной resp. Ее мы будем использовать для хранения сведений о позиции персонажа. Дополнительно введем переменные p и s: первая будет содержать id алмазного блока, вторая – размеры условного дома, то есть комнаты. Все стороны зададим на уровне 15 единиц.

    5. Создание переменной game. Ей мы присвоим значение True.

    Так, в основах разобрались. Двигаемся дальше.

    Совершенно непонятна целевая аудитория вот этого вот безобразия.
    Если это для преподавателя - лучше уж представить общую концепцию, хорошую документацию и способ донести всё это до ребёнка как следует.
    Если это для ребёнка 9-13 лет... Ну вы для начала покажите вот этот вот текст (или видео) взрослому человеку, который не понимает в программировании, а потом спросите, много ли он для себя смог вынести из всего этого. Единственное, что можно таким образом объяснить ребёнку - что программирование всегда представляет собой непонятную и сложную штуку минимум на 100 строк странного текста, и единственный способ работать с ним - это просто скопировать. Максимум - изменить ID блока.
    Может быть, конечно, это уже туториал для продвинутых детей, которые научились всему этому на предыдущих уроках... нет, предыдущие уроки, судя по тексту, включают в себя установку Minecraft и Python.


    В общем, на мой взгляд, это классический пример "как не надо учить". Ни детей, ни взрослых.


    1. MaxKitsch
      06.10.2024 19:25
      +2

      А тут идеи «учить» и нет. Это просто аттракцион, имитирующий обучение, как и все остальные «школы» и «академии» такого плана.