Допустим у вас поле дискретно логически состоит из клеток , нажимаем кнопку вперед, "Марио" должен переместиться например в клетку Mario.X = Mario.X + 1.
При этом есть анимация ( не известно сколько секунд ) по перемещению из клетки A в клетку B.
Как правильнее сделать, при нажатии кнопки вперед, если клетка X + 1 свободна,
a) сразу меняем состояние на X + 1 , и паралельно запускаем анимацию.
— минус такого подхода что может быть паралельно другое событие например какой-нибудь враг за время анимации марио переместиться в эту же клетку.
получится что анимация перемещения еще не завершилась, а нужно уже запускать анимацию взаимодействия с врагом
б) меняем состояние на X + 1 , только по завершению анимации
— в этом случае также будет проблема рассинхрона, марио может "проехать" по врагу , при этом не будет определено что они одновременно находились в клетке X + 1
оба варианта похожи на неправильные ? а как собственно делают ?
”Жить стало лучше... но противнее. Люди которые ставят точку после слова лучше становятся сторонниками Путина, наши же сторонники делают акцент на слове противнее ( ложь, воровство, лицемерие, вражда )." (с) Борис Немцов