Search
Write a publication
Pull to refresh

Comments 4

Отличный паттерн и хорошая реализация. Сам использую не только в игровых проектах.
Хочу спросить мнение автора про альтернативную реализацию.
Я бы не вводил счетчик ввода пользователя, а использовал дополнительное состояние:
• FirstAttackState - aнимация первой атаки, пользователь прокликал 1 раз.
• FirstAttackHalfComboState - aнимация первой атаки, пользователь прокликал 2 раза.
• FirstAttackFullComboState - aнимация третей атаки, пользователь прокликал 3 раза.
• SecondAttackState - анимация второй атаки, попадаем только из FirstAttackHalfComboState
• SecondAttackFullComboState - анимация второй атаки, попадаем из SecondAttackState если пользователь докликакал во время второй анимации или FirstAttackFullComboState
• ThirdAttackState - анимация третей атаки, попадаем из FirstAttackFullComboState или SecondAttackFullComboState

В таком случае, коллеги в команде сразу на глаз смогут оценить спектр покрываемых значений. Ветвления в состояниях больше не нужны и сама реализация остается в одной "плоскости".

Есть ли в таком варианте недостатки перед счетчиком? Я не вижу, но хочу услышать другие мнения.

я не автор, но тут есть момент с ритмикой, тоесть паттерн команда - нажатие клавиши должно укладываться в отрезок времени например пол секунды, или 1/3 секунды, потомучто тогда вам придётся считать нажатия, а так паттерн будет рекурсивно вводить в 1 2 3 состояние, тоесть просто сбрасывать вход в рекурсию если больше 3 это же 1 и та же кнопка соотв паттерн 1 просто свойство или адрес действия 1 2 3, поидее это кстати честно на момент исполнения действия в памяти по правилам рекурсии будет висеть комбо, которое сбросится после проигрывания состояния

с рекрсией без ритмики вроде получается как раз со сбросом

Скорее всего в файтингах реализовано по другому.

Так как при наличии десятка персонажей, десятка комбинаций и возможности выполнить половину одной комбинации и начать выполнять другую коллекция состояний и переходов между ними будет выглядеть как огромный запутанный комок гирлянды.

В UpdateCounter можно сразу передавать int, зачем там bool.

В целом, для такой однообразной комбо-атаки на одной кнопке сойдет. Но если надо будет разные комбо как в MK, то, думаю, тут в коде запутаться будет - нефиг делать. Нужен какой-то визуальный граф уже.

Sign up to leave a comment.

Articles