bool ParticleSystemEffect::checkParticleCountEndCondition(void)
{
    if(getMaxParticles() >= 0.0f)
    {
        return getTheSystem()->getNumParticles() > getMaxParticles() || getTheSystem()->getNumParticles() <= getMinParticles();
    }
    else
    {
        return getMaxParticles() < getMinParticles();
    }
    return false;
}
Ejemplo n.º 2
0
		ParticleSpiralSystem() : wyQuadParticleSystem(500){
	        // duration
	        setDuration(PARTICLE_DURATION_INFINITY);

	        // angle
	        setDirectionAngleVariance(90, 0);

	        // speed of particles
	        setSpeedVariance(150, 0);

	        // radial
	        setRadialAccelerationVariance(-380, 0);

	        // tagential
	        setTangentialAccelerationVariance(45, 0);

	        // life of particles
	        setLifeVariance(12, 0);

	        // size, in pixels
	        setStartSizeVariance(20, 0);

	        // emits per second
	        setEmissionRate(getMaxParticles() / getLife());

	        // color of particles
	        setStartColorVariance(0.5f, 0.5f, 0.5f, 1.0f, 0.5f, 0.5f, 0.5f, 0.0f);
	        setEndColorVariance(0.5f, 0.5f, 0.5f, 1.0f, 0.5f, 0.5f, 0.5f, 0.0f);

	        //set texture
	        setTexture(wyTexture2D::makePNG(RES("R.drawable.fire")));

	    	// additive
	    	setBlendAdditive(false);
		}
Ejemplo n.º 3
0
		ParticleFireSystem() : wyQuadParticleSystem(250){
	        // duration
	        setDuration(PARTICLE_DURATION_INFINITY);

	        // angle
	        setDirectionAngleVariance(90, 10);

	        // life of particles
	        setLifeVariance(3.0f, 0.25f);

	        // speed of particles
	        setSpeedVariance(60, 20);

	        // size, in pixels
	        setStartSizeVariance(100.0f, 10.0f);

	        // emits per frame
	        setEmissionRate(getMaxParticles() / getLife());

	        // color of particles
	        setStartColorVariance(0.76f, 0.25f, 0.12f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f);
	        setEndColorVariance(0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f);

	        //set texture
	        setTexture(wyTexture2D::makePNG(RES("R.drawable.fire")));

	    	// additive
	    	setBlendAdditive(true);
		}
Ejemplo n.º 4
0
		ParticleSmokeSystem() : wyQuadParticleSystem(200){
	        // duration
	        setDuration(PARTICLE_DURATION_INFINITY);

	        // angle
	        setDirectionAngleVariance(90, 5);

	        // position var
	        setParticlePositionVariance(0, 0, 20, 0);

	        // life of particles
	        setLifeVariance(4, 1);

	        // speed of particles
	        setSpeedVariance(25, 10);

	        // size, in pixels
	        setStartSizeVariance(60, 10);

	        // emits per frame
	        setEmissionRate(getMaxParticles() / getLife());

	        // color of particles
	        setStartColorVariance(0.8f, 0.8f, 0.8f, 1.0f, 0.02f, 0.02f, 0.02f, 0.0f);
	        setEndColorVariance(0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f);

	        //set texture
	        setTexture(wyTexture2D::makePNG(RES("R.drawable.fire")));

	    	// additive
	    	setBlendAdditive(false);
		}
Ejemplo n.º 5
0
		ParticleExplosionSystem() : wyQuadParticleSystem(700){
	        // duration
	        setDuration(0.1f);

	        // gravity
	        setParticleGravity(0, -100);

	        // angle
	        setDirectionAngleVariance(90, 360);

	        // speed of particles
	        setSpeedVariance(70, 40);

	        // life of particles
	        setLifeVariance(5.0f, 2.0f);

	        // size, in pixels
	        setStartSizeVariance(15.0f, 10.0f);

	        // emits per second
	        setEmissionRate(getMaxParticles() / getDuration());

	        // color of particles
	        setStartColorVariance(0.7f, 0.1f, 0.2f, 1.0f, 0.5f, 0.5f, 0.5f, 0.0f);
	        setEndColorVariance(0.5f, 0.5f, 0.5f, 0.0f, 0.5f, 0.5f, 0.5f, 0.0f);

	        //set texture
	        setTexture(wyTexture2D::makePNG(RES("R.drawable.stars")));
		}
Ejemplo n.º 6
0
		ParticleMeteorSystem() : wyQuadParticleSystem(150) {
	        // duration
	        setDuration(PARTICLE_DURATION_INFINITY);

	        // gravity
	        setParticleGravity(DP(-133.33f), DP(133.33f));

	        // angle
	        setDirectionAngleVariance(90, 360);

	        // speed of particles
	        setSpeedVariance(DP(10), DP(3.33f));

	        // life of particles
	        setLifeVariance(2, 1);

	        // size, in pixels
	        setStartSizeVariance(DP(40.0f), DP(6.6f));

	        // emits per second
	        setEmissionRate(getMaxParticles() / getLife());

	        // color of particles
	        setStartColorVariance(0.2f, 0.4f, 0.7f, 1.0f, 0.0f, 0.0f, 0.2f, 0.1f);
	        setEndColorVariance(0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f);

	        //set texture
	        setTexture(wyTexture2D::makePNG(RES("R.drawable.fire")));

	    	// additive
	    	setBlendAdditive(true);
		}
Ejemplo n.º 7
0
		ParticleFireworkSystem() : wyQuadParticleSystem(300){
			// duration
			setDuration(PARTICLE_DURATION_INFINITY);

			// gravity
			setParticleGravity(0, -90);

			// angle
			setDirectionAngleVariance(90, 20);

			// speed of particles
			setSpeedVariance(180, 50);

			// life of particles
			setLifeVariance(3.5f, 1.0f);

			// emits per frame
			setEmissionRate(getMaxParticles() / getLife());

			// color of particles
			setStartColorVariance(0.5f, 0.5f, 0.5f, 1.0f, 0.5f, 0.5f, 0.5f, 1.0f);
			setEndColorVariance(0.1f, 0.1f, 0.1f, 0.2f, 0.1f, 0.1f, 0.1f, 0.2f);

			// size, in pixels
			setStartSizeVariance(8.0f, 2.0f);
			setEndSizeVariance(PARTICLE_START_SIZE_EQUAL_TO_END_SIZE, 0);

	    	// emits per second
	        setEmissionRate(getMaxParticles() / getLife());

	        //set texture
	        setTexture(wyTexture2D::makePNG(RES("R.drawable.fire")));

	    	// additive
	    	setBlendAdditive(false);
		}
Ejemplo n.º 8
0
		ParticleSnowSystem() : wyQuadParticleSystem(700){
	        // duration
	        setDuration(PARTICLE_DURATION_INFINITY);

	        // gravity
	        setParticleGravity(0, -10);

	        // angle
	        setDirectionAngleVariance(-90, 5);

	        // speed of particles
	        setSpeedVariance(130, 30);

	        // radial
	        setRadialAccelerationVariance(0, 1);

	        // tagential
	        setTangentialAccelerationVariance(0, 1);

	        // emitter position
	        setParticlePositionVariance(0, 0, wyDevice::winWidth / 2, 0);

	        // life of particles
	        setLifeVariance(3, 1);

	        // size, in pixels
	        setStartSizeVariance(10, 5);

	        // emits per second
	        setEmissionRate(getMaxParticles() / getLife());

	        // color of particles
	        setStartColorVariance(0.9f, 0.9f, 0.9f, 1.0f, 0.0f, 0.0f, 0.1f, 0.0f);
	        setEndColorVariance(1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);

	        //set texture
	        setTexture(wyTexture2D::makePNG(RES("R.drawable.snow")));

	    	// additive
	    	setBlendAdditive(false);
		}
void ParticleEffectEntityItem::appendSubclassData(OctreePacketData* packetData, EncodeBitstreamParams& params,
                                                  EntityTreeElementExtraEncodeData* entityTreeElementExtraEncodeData,
                                                  EntityPropertyFlags& requestedProperties,
                                                  EntityPropertyFlags& propertyFlags,
                                                  EntityPropertyFlags& propertiesDidntFit,
                                                  int& propertyCount,
                                                  OctreeElement::AppendState& appendState) const {

    bool successPropertyFits = true;
    APPEND_ENTITY_PROPERTY(PROP_COLOR, getColor());
    APPEND_ENTITY_PROPERTY(PROP_EMITTING_PARTICLES, getIsEmitting());
    APPEND_ENTITY_PROPERTY(PROP_SHAPE_TYPE, (uint32_t)getShapeType());
    APPEND_ENTITY_PROPERTY(PROP_MAX_PARTICLES, getMaxParticles());
    APPEND_ENTITY_PROPERTY(PROP_LIFESPAN, getLifespan());
    APPEND_ENTITY_PROPERTY(PROP_EMIT_RATE, getEmitRate());
    APPEND_ENTITY_PROPERTY(PROP_EMIT_ACCELERATION, getEmitAcceleration());
    APPEND_ENTITY_PROPERTY(PROP_ACCELERATION_SPREAD, getAccelerationSpread());
    APPEND_ENTITY_PROPERTY(PROP_PARTICLE_RADIUS, getParticleRadius());
    APPEND_ENTITY_PROPERTY(PROP_TEXTURES, getTextures());
    APPEND_ENTITY_PROPERTY(PROP_RADIUS_SPREAD, getRadiusSpread());
    APPEND_ENTITY_PROPERTY(PROP_RADIUS_START, getRadiusStart());
    APPEND_ENTITY_PROPERTY(PROP_RADIUS_FINISH, getRadiusFinish());
    APPEND_ENTITY_PROPERTY(PROP_COLOR_SPREAD, getColorSpread());
    APPEND_ENTITY_PROPERTY(PROP_COLOR_START, getColorStart());
    APPEND_ENTITY_PROPERTY(PROP_COLOR_FINISH, getColorFinish());
    APPEND_ENTITY_PROPERTY(PROP_ALPHA, getAlpha());
    APPEND_ENTITY_PROPERTY(PROP_ALPHA_SPREAD, getAlphaSpread());
    APPEND_ENTITY_PROPERTY(PROP_ALPHA_START, getAlphaStart());
    APPEND_ENTITY_PROPERTY(PROP_ALPHA_FINISH, getAlphaFinish());
    APPEND_ENTITY_PROPERTY(PROP_EMIT_SPEED, getEmitSpeed());
    APPEND_ENTITY_PROPERTY(PROP_SPEED_SPREAD, getSpeedSpread());
    APPEND_ENTITY_PROPERTY(PROP_EMIT_ORIENTATION, getEmitOrientation());
    APPEND_ENTITY_PROPERTY(PROP_EMIT_DIMENSIONS, getEmitDimensions());
    APPEND_ENTITY_PROPERTY(PROP_EMIT_RADIUS_START, getEmitRadiusStart());
    APPEND_ENTITY_PROPERTY(PROP_POLAR_START, getPolarStart());
    APPEND_ENTITY_PROPERTY(PROP_POLAR_FINISH, getPolarFinish());
    APPEND_ENTITY_PROPERTY(PROP_AZIMUTH_START, getAzimuthStart());
    APPEND_ENTITY_PROPERTY(PROP_AZIMUTH_FINISH, getAzimuthFinish());
    APPEND_ENTITY_PROPERTY(PROP_EMITTER_SHOULD_TRAIL, getEmitterShouldTrail());
}
Ejemplo n.º 10
0
		ParticleRotateFlowerSystem() : wyQuadParticleSystem(50){
	    	// duration
	        setDuration(PARTICLE_DURATION_INFINITY);

	    	// Gravity mode: speed of particles
	        setSpeedVariance(160, 20);

	    	// Gravity mode: radial
	        setRadialAccelerationVariance(-120, 0);

	    	// Gravity mode: tagential
	        setTangentialAccelerationVariance(30, 0);

	    	// angle
	        setDirectionAngleVariance(90, 360);

	    	// life of particles
	        setLifeVariance(3, 1);

	    	// spin of particles
	        setEndSpinVariance(0, 2000);

	        // color of particles
	        setStartColorVariance(0.5f, 0.5f, 0.5f, 1.0f, 0.5f, 0.5f, 0.5f, 1.0f);
	        setEndColorVariance(0.1f, 0.1f, 0.1f, 0.2f, 0.1f, 0.1f, 0.1f, 0.2f);

	    	// size, in pixels
	        setStartSizeVariance(30, 0);
	        setEndSizeVariance(PARTICLE_START_SIZE_EQUAL_TO_END_SIZE, 0);

	    	// emits per second
	        setEmissionRate(getMaxParticles() / getLife());

	        //set texture
	        setTexture(wyTexture2D::makePNG(RES("R.drawable.stars2")));

	    	// additive
	    	setBlendAdditive(false);
		}
Ejemplo n.º 11
0
void ParticleEffectEntityItem::appendSubclassData(OctreePacketData* packetData, EncodeBitstreamParams& params,
                                                  EntityTreeElementExtraEncodeData* modelTreeElementExtraEncodeData,
                                                  EntityPropertyFlags& requestedProperties,
                                                  EntityPropertyFlags& propertyFlags,
                                                  EntityPropertyFlags& propertiesDidntFit,
                                                  int& propertyCount,
                                                  OctreeElement::AppendState& appendState) const {

    bool successPropertyFits = true;
    APPEND_ENTITY_PROPERTY(PROP_COLOR, getColor());
    APPEND_ENTITY_PROPERTY(PROP_ANIMATION_FPS, getAnimationFPS());
    APPEND_ENTITY_PROPERTY(PROP_ANIMATION_FRAME_INDEX, getAnimationFrameIndex());
    APPEND_ENTITY_PROPERTY(PROP_ANIMATION_PLAYING, getAnimationIsPlaying());
    APPEND_ENTITY_PROPERTY(PROP_ANIMATION_SETTINGS, getAnimationSettings());
    APPEND_ENTITY_PROPERTY(PROP_SHAPE_TYPE, (uint32_t)getShapeType());
    APPEND_ENTITY_PROPERTY(PROP_MAX_PARTICLES, getMaxParticles());
    APPEND_ENTITY_PROPERTY(PROP_LIFESPAN, getLifespan());
    APPEND_ENTITY_PROPERTY(PROP_EMIT_RATE, getEmitRate());
    APPEND_ENTITY_PROPERTY(PROP_EMIT_DIRECTION, getEmitDirection());
    APPEND_ENTITY_PROPERTY(PROP_EMIT_STRENGTH, getEmitStrength());
    APPEND_ENTITY_PROPERTY(PROP_LOCAL_GRAVITY, getLocalGravity());
    APPEND_ENTITY_PROPERTY(PROP_PARTICLE_RADIUS, getParticleRadius());
    APPEND_ENTITY_PROPERTY(PROP_TEXTURES, getTextures());
}
Ejemplo n.º 12
0
		ParticleModernArtSystem() : wyQuadParticleSystem(1000){
			// duration
	        setDuration(PARTICLE_DURATION_INFINITY);

			// Gravity mode: radial
	        setRadialAccelerationVariance(70, 10);

			// Gravity mode: tangential
	        setTangentialAccelerationVariance(80, 0);

			// Gravity mode: speed of particles
	        setSpeedVariance(50, 10);

			// angle
	        setDirectionAngleVariance(0, 360);

			// life of particles
	        setLifeVariance(2.0f, 0.3f);

			// emits per frame
	        setEmissionRate(getMaxParticles() / getLife());

	        // color of particles
	        setStartColorVariance(0.5f, 0.5f, 0.5f, 1.0f, 0.5f, 0.5f, 0.5f, 1.0f);
	        setEndColorVariance(0.1f, 0.1f, 0.1f, 0.2f, 0.1f, 0.1f, 0.1f, 0.2f);

			// size, in pixels
	        setStartSizeVariance(1.0f, 1.0f);
	        setEndSizeVariance(32.0f, 8.0f);

	        //set texture
	        setTexture(wyTexture2D::makePNG(RES("R.drawable.fire")));

	    	// additive
	    	setBlendAdditive(false);
		}