Динамичный небесный паркур в Майнкрафте — увлекательный проект, который можно воплотить с помощью языка программирования Python. Онлайн-школа программирования для детей “Пиксель” делится уроком по созданию паркура в небе в Майнкрафт.
Цель игры — забраться как можно выше по золотым блокам, которые появляются рядом с персонажем в случайном порядке. При этом герой не должен упасть, иначе игра будет завершена. Давайте начинать!
Подробную видеоинструкцию вы найдете в конце материала.
Если у вас еще не установлены необходимые программы, посмотрите наши видео:
Начнем с создания python-файла под названием parkour. Импортируем необходимые модули: minecraft, block, time и random. В переменную mc присвоим команду для подключения Python к нашему локальному серверу Minecraft. Позицию персонажа присвоим в переменную startPos. На высоте 150 создадим золотой блок. С помощью функции setTilePos телепортируем игрока на высоту 152. В чат выведем сообщение “Игра начинается через 5 секунд.”, остановим программу на 5 секунд, после чего пожелаем удачи игроку. Запустим программу.
Создадим переменную blocks для хранения в ней золотых блоков. Пока в данную переменную присвоим пустой список. Используя функцию append, добавим координаты первого золотого блока, который мы создали ранее. Для фиксации максимально достигнутой высоты игроком создадим переменную maxPos и присвоим в неё 0.
Добавим бесконечный цикл. В нём мы начнем объявлять переменные xr, yr, zr. В них присвоены случайные числа, которые в будущем будут использованы для создания золотого блока рядом с игроком в случайном месте. Позицию игрока поместим в переменную d. Затем к каждой оси прибавляем переменные со случайными числами. В функции создания блока обозначим позицию, добавим функцию остановки программы на секунду и запустим программу.
В список blocks будем добавлять координаты всех созданных золотых блоков. Чтобы блоков на карте было не так много, добавим условие: если длина списка больше 4 (или можете поставить любое число), то первую координату из списка blocks извлечем в переменную “c” и на месте данного блока создадим блок воздуха. Другими словами, этот блока кода вычеркивает координаты первого блока из списка и удаляет его в игре. Теперь на карте не будет появляться слишком много блоков.
Позицию персонажа поместим в переменную pos. В чат будем выводить текущую высоту, на которой находится игрок. Для фиксации максимально достигнутой высоты добавим условие: если текущая позиция больше зафиксированной, то в maxPos присваивается текущее значение высоты. Ниже добавим еще одно условие: если текущая позиция персонажа ниже 150-ти, то с помощью цикла for удалим все созданные программой золотые блоки, выведем сообщение об окончании игры и значение достигнутой высоты. В конце условного блока добавим команду break для завершения работы цикла, чтобы программа прекратила свою работу. Запустим программу и проверим окончательный вариант нашей игры.
Если хотите знать больше о языке программирования Python, то записывайтесь к на продвинутый курс по Minecraft и Python в школе “Пиксель”. Мы обучим вас программированию и вместе создадим продвинутые проекты в Майнкрафт. Все под чутким руководством опытных преподавателей!
Полный код программы
import mcpi.minecraft as minecraft import mcpi.block as block import time import random
if pos.y < 150: for c in blocks: mc.setBlock(c[0], c[1], c[2], block.AIR.id) mc.postToChat("Игра окончена!") mc.postToChat("Достигнутая высота: " + str(maxPos)) break