Phaser Tween To

Случилось неприятное — встроенные анимации Phaser заглючили. Что я ни делал, они рандомно отправляли всплывающие пузыри в противоположную сторону. Я хотел, чтобы пузырьки всплывали на определенную дистанцию, а в Phaser-анимациях был только метод to — то есть можно было указать к какой координате плыть.

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

Я уже хотел написать горящий велосипед — свой менеджер анимаций. И несколько раз его уже написал-вставил, но меня все мучало, что я меняю горящую карусель на горящий велосипед.

В итоге понял, что Tween.to в Phaser — добавляет новую анимацию в цепочку анимаций при каждом вызове.

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

Стало

Поставил в клике только start

this.target  — это специальный объект, к состоянию которого надо стремиться. Я задаю его в конструкторе — не при каждом клике я меняю Y (и могу менять остальные параметры), что позволяет задавать суть анимации в конструкторе объекта один раз, а менять ее параметры — уже при клике

Всплывающие пузырьки, как и любые временные эффекты, я часто создаю отдельными сущностями, которые обычно живут в пулах (Pools), откуда они извлекаются при появлении и сбрасываются обратно при завершении анимаций.

Добавить комментарий

Ваш e-mail не будет опубликован.

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">