Использование CCParticleBatchNode и CCParticleSystemQuad для создания выхлопного дыма, который движется с CCSprite - PullRequest
0 голосов
/ 08 февраля 2012

Я немного поиграл с системой частиц в cocos2d-iphone и ParticleDesigner, и я использую CCParticleBatchNode, чтобы получить хорошую производительность, так как у меня много одного и того же излучателя.Это прекрасно работает для взрывов, но теперь я хотел бы иметь дым на своих кораблях, но здесь я застрял.

Я не могу добавить CCParticleBatchNode к моему CCSprite, поскольку они могут быть добавлены только один раз, и этоповторно используется для всех выхлопов, но как мне заставить мой CCParticleBatchNode следовать или придерживаться моего CCSprite?

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

Как это делается, ребята?

1 Ответ

1 голос
/ 08 февраля 2012

конечно, вы не можете добавить ParticleBatchNode к спрайту (так же, как вы не можете добавить частицу, если спрайт использовался в SpriteBatchNode)

для решения аналогичных проблем, которые я использую, чтобы наследовать класс от ccsprite, скажем, MySprite, а затем переопределить установщик положения

-(void) setPosition:(CGPoint) position {

 myParticleEmitter.position = position; //+ offsets if needed
[super setPosition:position];
}

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...