как поменять анимацию в IMPACTJS - PullRequest
3 голосов
/ 07 декабря 2011

Я использую ImpactJS для создания игры на HTML5 и JS, когда анимация запущена, возможно ли в любом кадре обратить поток анимации (не переворачивая)? Я использовал rewind (), он возвращается только к первому кадру, есть ли reverse ()?

Ответы [ 3 ]

4 голосов
/ 24 апреля 2012

Если вы не против немного хакерства, то что-то подобное должно теоретически сработать:

animation.sequence = animation.sequence.reverse(); //Reverse the animation
animation.gotoFrame(animation.length - animation.frame - 1); //Set the frame to be the same frame as it was before.

По существу, свойство sequence класса ig.Animation() определяет порядок запуска кадров, обновление просто повторяет их по таймеру. Отмените это, и вы полностью измените анимацию. Вы можете просто использовать тот же код еще раз, когда вы хотите сбросить анимацию для пересылки.

Возможно, вам также понадобится сделать animation.rewind() вместо gotoFrame(), если вы хотите, чтобы воспроизводилась полностью обратная анимация.

В противном случае вы можете использовать 2 анимации и использовать gotoFrame() при переключении анимаций для запуска правильного кадра. Также обратите внимание, что приведенный выше код будет дублировать один кадр анимации, вы хотели бы удалить -1 (глядя на источник, я думаю, что это будет хорошо в случае, когда frame = 0).

0 голосов
/ 24 июля 2013

Нет, нет ничего обратного, что я знал о

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

0 голосов
/ 14 февраля 2012

Нет, но вы можете легко написать свой собственный, используя систему плагинов.

Или просто создайте новую анимацию, начиная с enetity.currentAnim.frame, а затем возвращаясь назад к entity.sequence. Затем установите текущую анимацию на новую.

...