Alterna · учебный материал
Python Games: миры на Canvas
Глава 44 Alterna: игровая механика, миры и творческая студия Python Games с браузерным Canvas-оболочка command API.
Что в этом материале
- Маршрут главы
- Кто за что отвечает
- Alt-патруль: препятствия и достижимость
- Сигнал доходит до маяка?
- Игровой цикл с открытым кодом
Содержание и основные понятия
Эта глава не называет себя pygame. Python задаёт сцену через ограниченный Canvas-оболочка command API, а браузер честно рисует результат в
canvas
. Механики и события разбираем как отдельную модель, а не приписываем их другой библиотеке.
проектирование
8-11 класс
Canvas-оболочка
01
Маршрут главы
Три страницы и студия образуют творческий маршрут без практикума, экзамена или полигона.
44.1 · движение
Игровая механика
Время кадра, координаты, скорость, столкновения и понятный порядок обновления мира.
44.2 · пространство
Миры и уровни
Сетка, точки интереса, препятствия и seed как компактное описание воспроизводимого мира.
44.3 · творческая среда
Python Игровая студия
Запусти Python-команды и получи управляемый Canvas-мир с реальными клавишами и игровой целью.
02
Кто за что отвечает
Python-команды
Описывают сцену
canvas.rect
,
canvas.circle
и
canvas.text
формируют ограниченный список команд. Python не рисует пиксели сам.
Canvas-оболочка
Рисует команды
Браузер получает только проверенные координаты, цвета и размеры, затем последовательно выводит их на настоящий Canvas.
Механика
Живёт в модели
Время кадра, ввод и столкновения разбираются на этой главе отдельно. Сцена студии не выдает себя за сторонний игровой движок.
Честный API
Это не реализация и не копия pygame. В студии доступен именно небольшой Canvas-оболочка command API:
size
,
clear
,
rect
,
circle
,
line
и
text
.
03
Alt-патруль: препятствия и достижимость
Патруль движется по клеткам. Попробуй столкнуться с препятствием, а затем попроси алгоритм показать кратчайший достижимый маршрут.
ALT · PATROL
Сигнал доходит до маяка?
патруль
маяк
препятствие
маршрут
Управляй стрелками на панели или клавишами, пока виджет в фокусе.
04
Игровой цикл с открытым кодом
Запусти заготовку, собери звёзды, затем измени скорость, координаты или условие сбора. Результат не отделён от причины: Python остаётся рядом с игровым Canvas и полностью редактируется.
Игровая студия загружается…
Три функции одного цикла
init()
создаёт состояние,
update(state, event, dt)
обрабатывает ввод и меняет данные,
draw(canvas, state)
строит новый кадр. Проверь экспериментом: если убрать изменение координаты из
update
, рисунок останется, но игра перестанет реагировать на управление.