Движущийся (кометный хвост) эффект эмиттера частиц без фактического движения
У меня есть Спрайт в моей сцене, и внутри этого спрайта есть эмиттер частиц. Поэтому, когда я перемещаю спрайт (используя действие MoveTo), я вижу движущуюся анимацию как для спрайта, так и для эмиттера частиц. Анимация MoveTo не была затронута старыми частицами (которые были испущены до того, как анимация была запущена), и я могу видеть что-то вроде хвоста, как от кометы. Так что все в порядке. Теперь, если я создам действие перемещения для спрайта и переместим его, скажем, на 100 пикселей вверх и выполню действие с эмиттером на 100 пикселей ниже, тогда эмиттер будет двигаться на 100 пикселей относительно спрайта, но останется относительно экрана и не будет никакого эффекта "хвоста кометы". Таким образом, это означает, что испускаемые частицы принадлежат не спрайту, а чему-то другому.
Итак, мой вопрос: как сделать эффект "кометного хвоста", не двигаясь относительно экрана? Или представьте, у меня есть слой с солнечным излучателем. И в какой-то момент я решу переместить этот слой (прокрутить его), и мой солнечный излучатель будет также прокручивать со слоем, но старые испускаемые частицы будут создавать эффект "хвоста кометы", потому что они принадлежат не слою, а чему-то другому. остальное. Как можно переместить эту сцену без эффекта "кометного хвоста"?
Благодарю вас!
1 ответ
Итак, вот Типы Позиции, определенные движком частиц cocos2d:
- СВОБОДНО
Живые частицы привязаны к миру и не подвержены изменению положения излучателя. - РОДСТВЕННИК
Живые частицы привязаны к миру, но будут следовать за перемещением излучателя.Вариант использования: прикрепите эмиттер к спрайту, и вы хотите, чтобы эмиттер следовал за спрайтом. - Сгруппированные
Живые частицы прикрепляются к излучателю и транслируются вместе с ним.
Если вы не хотите, чтобы частицы перемещались относительно мира, тогда вам нужно либо ОТНОСИТЬСЯ, либо Сгруппировать.
Если вы хотите, чтобы частицы образовывали след, вам нужно БЕСПЛАТНО.
emitter->setPositionType(_posType);
Если вы считаете, что я не понимаю вашу точку зрения, пожалуйста, опубликуйте некоторый код, чтобы проиллюстрировать проблему - вам сложно понять вашу проблему.