Моя вторая статья про программирование на Python в Майнкрафте. Чтобы узнать больше, прочитайте мою первую статью. Начнём.
ПРИКЛЮЧЕНИЕ 2, часть 1
В данном приключении будем наблюдать за перемещением персонажа в игре(например - узнавать координаты)
Программа выводящая координаты персонажа в игре:
1. Импортируем нужные модули:
import mcpi.minecraft as minecraft
2. Подключаемся к игре Майнкрафт:
mc = minecraft.Minecraft.create()
3. Запросите у игры позицию вашего персонажа:
pos = mc.player.getTilePos()
4. Есть 3 варианта вывода координат -2 варианта вывода в оболочке Python и вывод в игре Майнкрафт:
1. print(pos.x)
print(pos.y)
print(pos.z)
2. print("x="+str(pos.x)+"y="+str(pos.y)+"z="+str(pos.z))
3. mc.postToChat("x="+str(pos.x)+"y="+str(pos.y)+"z="+str(pos.z))
Запустите программу и вы увидите координаты персонажа в мире Майнкрафт.
Программа, выводящая в чат сообщение, когда вы встаёте на коврик:
1. Импортируем нужные модули:
import mcpi.minecraft as minecraft
import time
2. Подключаемся к игре Майнкрафт:
mc = minecraft.Minecraft.create()
4. На данном этапе появляется новые для вас функции. Ещё важно следить за отступами:
while True:
time sleep(1)
pos = mc.player.getTilePos()
if pos.x == 12 and pos.y == 70 and pos.z == 32:
mc.postToChat("Дом, милый дом!")
Объяснение некоторых функций и кодов:
1. while True - бесконечный цикл, каждый раз начинается снова и снова. Повторяется, пока не остановится программа.
2. time sleep() - добавляет задержку, для того чтобы программа не выполнялась слишком часто и быстро.
3. if - если. Наверное тут легко понять, например - "if pos.x == 12" означает - "если позиция персонажа по оси X равна 12".
4. Почему в if используется 2 знака "=="? В языке Python один знак "=" означает записать значение справа в переменную слева, например "a=10". Два знака "==" означают, что нужно сравнить два значения и если они равны, то выполнить, то что идёт после.
Автор статьи - Рахимов Руслан
Связь - vk.com/ruslanrahimov2006(Добавляйтесь в друзья с сообщением типа "ЯндексДзен Майнкрафт Питон","Я с ЯндексДзена")