🎯 Цели занятия
- Понять систему координат X, Y, Z в Minecraft
- Научиться использовать абсолютные координаты через
world() - Научиться использовать относительные координаты через
pos()иposCamera() - Освоить команды постройки и перемещения с координатами в Python
- Выполнить простые практические задания в Minecraft Education
📋 План занятия
| Этап занятия | Время | Что делаем |
|---|---|---|
| Оси X, Y, Z | 10 мин | Что такое координаты в 3D-мире |
| Абсолютные координаты | 15 мин | world(), точки в мире |
| Относительные координаты | 15 мин | pos(), posCamera() |
| Команды Python | 15 мин | place, fill, teleport, position |
| Интерактив | 10 мин | Сопоставление и задача на координаты |
| AI-помощник | 5 мин | Спроси у Алисы |
| Практика | 25 мин | Строим и телепортируемся кодом |
| Итоги | 5 мин | Викторина и рефлексия |
| Итого | 90 мин | — |
1 Система координат в Minecraft
Мир Minecraft — это большой трёхмерный куб. Любая точка (блок) описывается тремя числами: X, Y и Z.
(X, Y, Z) — например (100, 64, -20).Y часто около 64 на равнине — это «уровень земли». Координаты можно посмотреть в игре (подсказка на экране или команда в чате).
2 Абсолютные координаты
Абсолютные координаты — это точка в мире, которая не меняется, куда бы ни ходил игрок. Начало мира — точка (0, 0, 0).
# Поставить блок земли в фиксированной точке мира
blocks.place(GRASS, world(5, 64, 5))
# Заполнить куб камнем от одной точки до другой (абсолютные углы)
blocks.fill(
STONE,
world(0, 64, 0),
world(4, 66, 4),
FillOperation.REPLACE
)
# Телепорт игрока в абсолютную точку
def go_home():
player.teleport(world(0, 64, 0))
player.on_chat("дом", go_home)
3 Относительные координаты
Относительные координаты считаются от текущего положения игрока или агента. В Python для этого используют функции pos() и posCamera().
| Функция | Относительно чего | Пример |
|---|---|---|
pos(x, y, z) |
Ног игрока, оси мира (восток/запад, вверх/вниз, юг/север) | pos(3, 0, 0) — на 3 блока на восток |
posCamera(x, y, z) |
Куда смотрит игрок: вперёд, назад, влево, вправо | posCamera(0, 0, 5) — на 5 блоков вперёд |
# Блок прямо перед игроком (по взгляду)
blocks.place(STONE, posCamera(0, 0, 2))
# Платформа 5×5 под ногами игрока (относительный fill)
blocks.fill(
GRASS,
pos(-2, -1, -2),
pos(2, -1, 2),
FillOperation.REPLACE
)
# Поднять игрока на 10 блоков (относительный телепорт)
def jump_up():
player.teleport(pos(0, 10, 0))
player.on_chat("вверх", jump_up)
pos(0, 2, 0) указывает уже на другое место в мире — она «ездит» вместе с тобой!
4 Сводка команд для координат
Краткая шпаргалка — что за что отвечает:
| Команда | Тип координат | Что делает |
|---|---|---|
world(x, y, z) | Абсолютные | Точка в мире по числам X, Y, Z |
pos(x, y, z) | Относительные | Смещение от ног игрока по осям мира |
posCamera(x, y, z) | Относительные | Смещение от игрока по направлению взгляда |
blocks.place(БЛОК, позиция) | Любые | Ставит один блок в указанную позицию |
blocks.fill(БЛОК, от, до, REPLACE) | Любые | Заполняет прямоугольный объём блоками |
blocks.replace(...) | Любые | Меняет один тип блока на другой в области |
player.teleport(позиция) | Любые | Перемещает игрока |
agent.teleport(позиция, сторона) | Обычно pos() | Перемещает агента и поворачивает его |
player.position() | — | Узнать, где сейчас игрок (абсолютные числа) |
positions.add(p1, p2) | Смешанные | Сложить две позиции (тип результата как у первой) |
agent.move() и agent.place(). Координаты нужны, когда строишь без пошагового хода — сразу целую фигуру или телепорт.
🔑 Абсолютные или относительные?
Выбери тип координат для каждой команды:
🧮 Посчитай координаты
Игрок стоит в точке (10, 64, 20). Куда попадёт блок при blocks.place(STONE, pos(5, 3, -2))?
Подсказка: к X прибавь 5, к Y — 3, к Z — −2.
Нажми на вопрос — Алиса ответит тебе прямо сейчас!
«Алиса, чем pos отличается от world в MakeCode Python?»
🛠️ Практика: координаты в Minecraft
Открой редактор кода (C), выбери Python. Выполни задания на плоском мире.
По команде чата метка поставь блок светящегося камня в абсолютную точку world(5, 64, 5).
По команде шапка поставь золотой блок на 2 блока выше игрока: blocks.place(GOLD_BLOCK, pos(0, 2, 0)).
По команде дорога поставь 5 блоков камня в линию: используй цикл и posCamera(0, -1, i) для i от 1 до 5 (под ногами перед тобой).
По команде площадка заполни область травой от world(0, 63, 0) до world(6, 63, 6) через blocks.fill и FillOperation.REPLACE.
По команде агент телепортируй агента на 3 блока вверх от его позиции: agent.teleport(pos(0, 3, 0), NORTH).
По команде где сохрани player.position() в переменную и выведи в чат сообщение с координатами X, Y, Z (можно через несколько player.say()).
📝 Проверь себя
1. Какая функция задаёт абсолютную точку в мире?
2. Что означает ось Y?
3. Как поставить блок на 4 шага вперёд по направлению взгляда?
4. Команда blocks.fill нужна, чтобы…
5. Относительные координаты pos(0, 0, 0) — это…
💭 Рефлексия
Напиши, что тебе понятнее — абсолютные или относительные координаты и почему: