Comments 16
Здесь большое неудобство доставляет система координат, выбранная в игре: вертикальная ось — это координата Y, а горизонтальная плоскость — XZ
не понимаю, как ещё может быть, всё правильно, 3 оси, в чем проблема?
В компьютерной графике обычно принято считать экран монитора плоскостью XY. И это не вызывает ни каких нареканий пока работаешь с 2D графикой (например рисуешь графики функций). Для добавления оси Z, без изменения "старых привычек", остаётся только один вариант — направить её вдоль оси перпендикулярной плоскости экрана. Вот и получается что понятия вверх/вниз в компьютерных 3D играх соответствуют оси Y.
А в HTML ось Y вообще вниз :)
В итоге получается интересная ситуация, когда в записи «неравноправных» координат «особое» значение, интересное в особых случаях, находится между «обычными», требуемыми для ориентирования на карте. Это не принципиально, но без привычки работать с этим трудновато, да и с привычкой ошибки нередки (по сравнению с возможной альтернативной записью, в которой высота отделена от других координат, например, находясь в конце).
Найденное решение — в самом скрипте сканер сообщений игрока периодически проверяет лог игровой сессии в папке <USER_DIRECTORY>\AppData\Roaming\.minecraft, чтобы поймать сообщения из чата, распарсить их и выполнить соответствующую связанную питоновскую функцию, если таковая есть.
Можно проще — обработать событие «onChatEvent»
events_chat = mc.events.pollChatPosts()
for event in events_chat:
print(event.message)
Это обработка событий сообщений чата.
Еще обрабатываются события касания блока деревянным мечом и попадания стрелы.
github.com/martinohanlon/mcpi/blob/master/mcpi/minecraft.py
github.com/AdventuresInMinecraft/AdventuresInMinecraft-PC/tree/master/MyAdventures/mcpi
Если ребёнку Roblox тоже нравится, то лучше даже начать с Roblox Studio. Минус — русского интерфейса нет, зато практически полноценный игровой движок с визуальным редактором уровней и анимаций, а также возможностью писать и дебажить скрипты на Lua.
Я не думаю, что синтаксис Lua сложнее чем, в Python. Там больше проблем будет объяснить иерархии объектов в игровом мире и всякие логические конструкты в виде событий, методов, свойств и функций. Плюс клиент-серверное взаимодействие начинает довольно много значить, если игру делать многопользовательскую.
Главное, правильно подобрать примеры — начать чисто с построения мира, потом манипулировать свойствами объектов, потом физикой, потом простейшие скрипты и так далее.
Стив пишет заклинания на Python. Обучение детей программированию в Minecraft