I use Urho2d, and I’ve got ParticleEmitter2D. I need it to stop emitting particles at some moment, but not immediately disable it, removing all particles, I need existing particles to continue living, and after all die, remove node. Only working way I found is to set node’s position somewhere outside the screen, is there any less dirty-hackish way to achieve this?
Any way to stop ParticleEmitter2D?
You could give the emitters their own node, and set the parent to being the scene before disabling the rest of the object.
EDIT: After some experimentation it seems it would be better to set emitting to false (which would need to be implemented for ParticleEmitter2D
) and re-enable the emitter’s node
Sorry, I didn’t quite get the idea. You mean, something like this?
node->RemoveChild(particleEmitter->GetNode());
node->GetScene()->AddChild(particleEmitter->GetNode());
(node is the top node, it has one child, which contains the particleEmitter component)
I was thinking more along the lines of:
particleEmitter_->SetEmitting(false);
particleEmitter_->GetNode()->SetParent(node_->GetScene())`.
And particleEmitter_->GetNode()->SetParent(node_)
upon reuse. Along with resetting the position and the like.
ParticleEmitter
has void SetEmitting(bool enable);
, ParticleEmitter2D
does not. Looks like it is a missing functionality.
I have no experience with the ParticleEmitter2D
class, but would agree.