В основном у меня есть конечный автомат, который управляет атаками игрового персонажа, с таймингом, основанным на длине анимации.
Итак, для Пример:
Я начинаю с состояния по умолчанию, и если игрок нажимает кнопку атаки, он начинает атаку, переключая состояние и устанавливая таймер в зависимости от продолжительности атаки. Конечный автомат становится более сложным, когда я рассматриваю атаки с зарядом, которые можно отменить, атаки, которые могут переходить в разные состояния в зависимости от того, что они поражают, а также каждое состояние имеет уникальные способы борьбы с атакуемым персонажем. На данный момент у меня есть большие операторы переключения. Я думал о полиморфизме, но для этого потребуется новый класс для каждого состояния, которого много (например, для начала атаки, атаки и завершения атаки требуются отдельные состояния).
Оператор switch работает, но он довольно большой, а также не так легко модифицируется, как система, основанная на наследовании.
Есть ли предложения по красивым реализациям?
РЕДАКТИРОВАТЬ: Используется java.