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