Блог онлайн школы Пиксель

Как сделать паркур в Майнкрафте на Python

Динамичный небесный паркур в Майнкрафте — увлекательный проект, который можно воплотить с помощью языка программирования Python. Онлайн-школа программирования для детей “Пиксель” делится уроком по созданию паркура в небе в Майнкрафт.

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

как сделать паркур в майнкрафте

Подробную видеоинструкцию вы найдете в конце материала.

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

- Как скачать Minecraft и Python на Windows
- Как скачать Minecraft и Python на MacOS

Программирование


Начнем с создания python-файла под названием parkour. Импортируем необходимые модули: minecraft, block, time и random. В переменную mc присвоим команду для подключения Python к нашему локальному серверу Minecraft. Позицию персонажа присвоим в переменную startPos. На высоте 150 создадим золотой блок. С помощью функции setTilePos телепортируем игрока на высоту 152. В чат выведем сообщение “Игра начинается через 5 секунд.”, остановим программу на 5 секунд, после чего пожелаем удачи игроку. Запустим программу.

minecraft паркур

minecraft паркур карты

Создадим переменную blocks для хранения в ней золотых блоков. Пока в данную переменную присвоим пустой список. Используя функцию append, добавим координаты первого золотого блока, который мы создали ранее. Для фиксации максимально достигнутой высоты игроком создадим переменную maxPos и присвоим в неё 0.

Добавим бесконечный цикл. В нём мы начнем объявлять переменные xr, yr, zr. В них присвоены случайные числа, которые в будущем будут использованы для создания золотого блока рядом с игроком в случайном месте. Позицию игрока поместим в переменную d. Затем к каждой оси прибавляем переменные со случайными числами. В функции создания блока обозначим позицию, добавим функцию остановки программы на секунду и запустим программу.

python minecraft

игры майнкрафт паркур

В список 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

mc = minecraft.Minecraft.create()
startPos = mc.player.getTilePos()
mc.setBlock(startPos.x, 150, startPos.z, block.GOLD_BLOCK.id)
mc.player.setTilePos(startPos.x, 152, startPos.z)

mc.postToChat("Игра начнется через 5 секунд.")
time.sleep(5)
mc.postToChat("Удачи! Не стой на месте!")

blocks = []
blocks.append([startPos.x, 150, startPos.z])
maxPos = 0

while True:

    xr = random.randint(-3, 3)
    yr = random.randint(-1, 1)
    zr = random.randint(-3, 3)

    d = mc.player.getTilePos()
    d.x += xr
    d.y += yr
    d.z += zr

    mc.setBlock(d.x, d.y, d.z, block.GOLD_BLOCK.id)
    time.sleep(1)

    blocks.append([d.x, d.y, d.z])
    if len(blocks) > 4:
        c = blocks.pop(0)
        mc.setBlock(c[0], c[1], c[2], block.AIR.id)

    pos = mc.player.getTilePos()
    mc.postToChat("Высота: " + str(pos.y))
    if pos.y > maxPos:
        maxPos = pos.y

    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

Бесплатные видеоуроки Minecraft для детей