В этот раз на реализацию подсистемы ввода потребовалось больше времени, чем один день, я даже считать не стал. Заодно поправил ошибки, связанные с утечкой памяти.
Что сделано
Не буду приводить здесь код даже интерфейсов классов. Просто опишу список того, что сделал.
Поправил ошибки утечек памяти. Создавал объекты через
new
и не удалял их. Зачесались руки сделать какой-нибудь класс для дебага, который бы считал созданные и удаленные объекты.Реализовал класс
InputSystem
, который ответственен за сбор данных со всех устройств ввода. Теперь в каждом акторе и компоненте вместо прямого запроса состояния устройств вводы мы просто получаем объект классаInputState
, где хранится состояние клавиатуры и мыши.Реализовал классы
FPSActor
,FPSCamera
. Теперь можно перемещаться в пространстве.
Ниже результат.
Ссылка на GitHub
TODO
- Добавить документацию Doxygen к класса и функциям
- Сделать класс для свободного перемещения
FreeActor
в пространстве и возможности переключения междуFreeActor
иFPSActor
- Создать класс
InputComponent
, который отвечает за обработку пользовательского ввода и установки величин скорости актора.
Так как тудушки начинают расти, сделал доску в Trello