Движущийся (кометный хвост) эффект эмиттера частиц без фактического движения

У меня есть Спрайт в моей сцене, и внутри этого спрайта есть эмиттер частиц. Поэтому, когда я перемещаю спрайт (используя действие MoveTo), я вижу движущуюся анимацию как для спрайта, так и для эмиттера частиц. Анимация MoveTo не была затронута старыми частицами (которые были испущены до того, как анимация была запущена), и я могу видеть что-то вроде хвоста, как от кометы. Так что все в порядке. Теперь, если я создам действие перемещения для спрайта и переместим его, скажем, на 100 пикселей вверх и выполню действие с эмиттером на 100 пикселей ниже, тогда эмиттер будет двигаться на 100 пикселей относительно спрайта, но останется относительно экрана и не будет никакого эффекта "хвоста кометы". Таким образом, это означает, что испускаемые частицы принадлежат не спрайту, а чему-то другому.

Итак, мой вопрос: как сделать эффект "кометного хвоста", не двигаясь относительно экрана? Или представьте, у меня есть слой с солнечным излучателем. И в какой-то момент я решу переместить этот слой (прокрутить его), и мой солнечный излучатель будет также прокручивать со слоем, но старые испускаемые частицы будут создавать эффект "хвоста кометы", потому что они принадлежат не слою, а чему-то другому. остальное. Как можно переместить эту сцену без эффекта "кометного хвоста"?

Благодарю вас!

1 ответ

Итак, вот Типы Позиции, определенные движком частиц cocos2d:

  • СВОБОДНО
    Живые частицы привязаны к миру и не подвержены изменению положения излучателя.
  • РОДСТВЕННИК
    Живые частицы привязаны к миру, но будут следовать за перемещением излучателя.Вариант использования: прикрепите эмиттер к спрайту, и вы хотите, чтобы эмиттер следовал за спрайтом.
  • Сгруппированные
    Живые частицы прикрепляются к излучателю и транслируются вместе с ним.

Если вы не хотите, чтобы частицы перемещались относительно мира, тогда вам нужно либо ОТНОСИТЬСЯ, либо Сгруппировать.

Если вы хотите, чтобы частицы образовывали след, вам нужно БЕСПЛАТНО.

emitter->setPositionType(_posType);

Если вы считаете, что я не понимаю вашу точку зрения, пожалуйста, опубликуйте некоторый код, чтобы проиллюстрировать проблему - вам сложно понять вашу проблему.

Другие вопросы по тегам