Example #1
0
Drawable* ParticleEmitter::clone(NodeCloneContext& context)
{
    // Create a clone of this emitter
    ParticleEmitter* clone = ParticleEmitter::create(_spriteBatch->getSampler()->getTexture(),
                                                     _spriteBlendMode, _particleCountMax);
    // Clone properties
    clone->setEmissionRate(_emissionRate);
    clone->_ellipsoid = _ellipsoid;
    clone->_sizeStartMin = _sizeStartMin;
    clone->_sizeStartMax = _sizeStartMax;
    clone->_sizeEndMin = _sizeEndMin;
    clone->_sizeEndMax = _sizeEndMax;
    clone->_energyMin = _energyMin;
    clone->_energyMax = _energyMax;
    clone->_colorStart = _colorStart;
    clone->_colorStartVar = _colorStartVar;
    clone->_colorEnd = _colorEnd;
    clone->_colorEndVar = _colorEndVar;
    clone->_position = _position;
    clone->_positionVar = _positionVar;
    clone->_velocity = _velocity;
    clone->_velocityVar = _velocityVar;
    clone->_acceleration = _acceleration;
    clone->_accelerationVar = _accelerationVar;
    clone->_rotationPerParticleSpeedMin = _rotationPerParticleSpeedMin;
    clone->_rotationPerParticleSpeedMax = _rotationPerParticleSpeedMax;
    clone->_rotationSpeedMin = _rotationSpeedMin;
    clone->_rotationSpeedMax = _rotationSpeedMax;
    clone->_rotationAxis = _rotationAxis;
    clone->_rotationAxisVar = _rotationAxisVar;
    clone->setSpriteTexCoords(_spriteFrameCount, _spriteTextureCoords);
    clone->_spriteAnimated = _spriteAnimated;
    clone->_spriteLooped = _spriteLooped;
    clone->_spriteFrameRandomOffset = _spriteFrameRandomOffset;
    clone->setSpriteFrameDuration(_spriteFrameDuration);
    clone->_orbitPosition = _orbitPosition;
    clone->_orbitVelocity = _orbitVelocity;
    clone->_orbitAcceleration = _orbitAcceleration;

    return clone;
}