Канонический цикл разбора событий
Один mainloop
- Определение адресата события
- Обработка события (немедленная)
- Активность объектов (возможно, немедленная)
- Изменение игрового мира (каждый tick)
- Отрисовка игрового мира (возможно, немедленная)
- Понятие «игрового состояния» (обработка одного и того же события различна для разных состояний)
- Необходимость глобальных переменных (свойств вселенной) при реализации обработчиков в функциях
Домашнее задание
Прочитать про графику в учебнике
Обратите внимание на упрощённую реализацию (совмещение активности объектов и пересчёта вселенной под названием «game logic») тут
Обратите внимание на использование часов (time.Clock и clock.tick()), в результате чего любая обработка происходит не чаще, чем на каждый tick
- Переписать простой пример с шариком (шарик ударяется о стенки и его можно перетаскивать, больше ничего) с поддержкой «канонического цикла разбора»
- Определение получателя события (игровое состояние «шарик скачет» или игровое состояние «шарик тащится за мышкой»)
- Обработка события (возможно объединение со следующей стадией)
- Активность объекта (шарик перемещается)
- Изменение игрового мира (проверка правильности координат шарика в обоих состояниях и изменение вектора скорости в случае «скачет» + изменение игрового состояния в соответствующих случаях)
- Перерисовка
Условные обозначения
— тема по Linux
— тема повышенной сложности
— теоретическое задание
— тема для самостоятельного изучения