Skip to content

Общий план развития движка #9

@tereshenkovav

Description

@tereshenkovav
  • Загрузка спрайта с пропорцией Origin (например, 0.5,0 -> w/2, 0)
  • Реализовать систему параметров загрузки, не только для спрайтов, но и для анимаций
  • Автоматическая очистка ресурсов, загруженных через загрузчик сцены
  • Разобраться с UTF и Linux
  • isValid для полного экрана только имеет смысл - вывести все режимы
  • Геймпад поддержка, включая установку при биндинге клавиш управления
  • Корректная обработка ошибок загрузки и ошибок сцены с протоколом и записью. Программа должна вести лог и давать сообщение игроку о произошедшей ошибке. Перейти на кидание исключений в загрузчиках ресурсов и обработку исключений/логирование в классе Game при инициализации/рендере/обсчете
  • Возврат к родительской сцене
  • Рефакторинг механизма сцен, субсцены могут быть вложены, у каждой субсцены может быть своя субсцена. Аналогично, оверсцен может быть больше одной у каждой сцены.
  • Инсталлятор игр более качественный с учетом обновлений
  • Добавить позиционирование объектов слоями как в Qt (центр, выравнивание и т.д.)
  • Библиотека эффектов наподобие SpriteEffects
  • Класс кнопки и чекбокса, либо подключить CTGUI
  • Префильтры загрузки спрайта (частично уже реализовано в loadSprite)
  • Разобраться с багом рендера большого текста (255 символов?)
  • Словарь спрайтов с ключами и рендером по коду ключа, с обработкой несуществующих ключей и загрузкой каталога/списка файлов.
  • Возможность рендерить сцену не сразу на окно, а в текстуру, потом накладывать эффект и выводить в окно. Может быть полезно при рендере меню или игровой паузы, сделать серым цветом или затенением. Сюда же эффект пикселизации.
  • Централизация управления звуками с учетом режима (вкл/выкл)
  • Переделать процедуру TScene.drawTextInBlockWidth, убрав необходимость пробела после \n и добавив опцией выравнивание по ширине.
  • Сделать систему курсора явную, с установкой текущего из сцены и рендером отдельно поверх всего в классе игры.

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

Status

No status

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions