RocketSettings SceneRealistic :: getFlowerRocket(float hue , float hueChange ){ RocketSettings rocketSettings; rocketSettings.startSpeedMin = 1200; rocketSettings.startSpeedMax = 1500; rocketSettings.directionVar = 4; rocketSettings.gravity.y = 200; rocketSettings.drag = 0.95; ParticleSystemSettings trails = getFlowerTrailParticles(hue, hueChange); ParticleSystemSettings explosion = getFlowerExplosionParticles(hue, hueChange); ParticleSystemSettings explosionLines = getLineExplosionParticles(150, hueChange); explosion.emitDelay = explosionLines.emitDelay = trails.emitLifeTime = 2; rocketSettings.addParticleSystemSetting(trails); rocketSettings.addParticleSystemSetting(explosion); rocketSettings.addParticleSystemSetting(explosionLines); return rocketSettings; };
RocketSettings SceneRetro:: getFatRocket(float hue) { RocketSettings rocketSettings; ParticleSystemSettings pss; //pss.renderer = new ParticleRendererShape(); pss.renderer = new ParticleRendererLowRes(pixelSize,1); pss.speedMin = pss.speedMax = 0; pss.emitCount = 100; pss.sizeStartMin = pss.sizeStartMax = pixelSize*1.5; pss.sizeChangeRatio = 0; pss.saturationEnd =500; pss.hueStartMin = pss.hueStartMax = hue; //pss.brightnessEnd = 128; pss.lifeMin = 0.4; pss.lifeMax = 0.4; pss.emitLifeTime = 1.5; pss.startSound = "SynthKick"; rocketSettings.addParticleSystemSetting(pss); rocketSettings.startSpeedMin = 1600; rocketSettings.startSpeedMax= 1700; rocketSettings.directionVar = 0; //rocketSettings.drag = 0.98; rocketSettings.gravity.set(0,1800); return rocketSettings; };
RocketSettings SceneRealistic :: getSphereFlowerRocket(float hue , float hueChange ){ RocketSettings rocketSettings; rocketSettings.startSpeedMin = 1200; rocketSettings.startSpeedMax = 1500; rocketSettings.directionVar = 4; rocketSettings.gravity.y = 200; rocketSettings.drag = 0.95; ParticleSystemSettings trails = getFlowerTrailParticles(hue, hueChange); ParticleSystemSettings explosion = getFlowerExplosionParticles(hue, hueChange); explosion.directionZ = 0; explosion.directionZVar = 90; explosion.directionY = 0; explosion.directionYVar = 180; explosion.speedMin = 900; explosion.speedMax = 1000; ParticleSystemSettings explosionLines = getLineExplosionParticles(150, hueChange); ParticleSystemSettings crackles = getBangerCrackles(); crackles.renderer = new ParticleRendererStar(20, 70); crackles.brightnessStartMax = 150; crackles.brightnessStartMin = 100; crackles.sizeStartMax = 5; crackles.sizeStartMin = 3; // crackles.emitDelay = 0; // crackles.startSound = ""; // crackles.emitMode = PARTICLE_EMIT_CONTINUOUS; // crackles.renderDelayMin = 0.01; // crackles.renderDelayMax = 0.2; // crackles.speedMin = 0; // crackles.speedMax = 0.5; explosion.emitDelay = explosionLines.emitDelay = crackles.emitDelay = trails.emitLifeTime = 2; rocketSettings.addParticleSystemSetting(trails); rocketSettings.addParticleSystemSetting(explosion); rocketSettings.addParticleSystemSetting(explosionLines); rocketSettings.addParticleSystemSetting(crackles); return rocketSettings; };
RocketSettings SceneRetro:: getRetroFountain(float hueOffset, float hueChange) { RocketSettings rocketSettings; ParticleSystemSettings pss; pss.renderer = new ParticleRendererLowRes(pixelSize); pss.speedMin = 100; pss.speedMax = 100; pss.drag = 0.9; pss.directionZVar = 0; pss.directionZ = 0; pss.sizeStartMin = 4; pss.sizeStartMax = 4; pss.sizeChangeRatio = 0; pss.hueStartMin = pss.hueStartMax = hueOffset; pss.brightnessEnd = 255; pss.saturationMin = 0; pss.saturationMax = 0; pss.saturationEnd = 700; pss.shimmerMin = 1; pss.lifeMin= 0.2; pss.lifeMax= 0.8; pss.emitCount = 100; pss.emitLifeTime = 0.5; pss.emitHueModifierOffset = hueChange; pss.emitSpeedModifier = 0; pss.emitInheritVelocity = 0.5; ParticleSystemSettings pss2(pss); pss2.directionZ = 180; pss2.startSound = "RetroFountain"; rocketSettings.startSpeedMin = 700; rocketSettings.startSpeedMax = 1200; rocketSettings.lifeTime = 0.5; rocketSettings.drag = 0.99; rocketSettings.gravity.y = 1000; rocketSettings.addParticleSystemSetting(pss); rocketSettings.addParticleSystemSetting(pss2); return rocketSettings; };
RocketSettings SceneRealistic :: getFluffyRocket(){ RocketSettings rocketSettings; ParticleSystemSettings pss; pss.renderer = new ParticleRendererBitmap(&softWhiteImage); pss.gravity.y = 100; pss.speedMin = 00; pss.speedMax = 20; pss.drag = 0.93; pss.sizeStartMin = 8; pss.sizeStartMax = 15; pss.sizeChangeRatio = 0.9; pss.shimmerMin = 1; pss.emitCount = 500; pss.emitStartSizeModifier = 0.2; pss.brightnessStartMin = 10; pss.brightnessStartMax = 255; pss.brightnessEnd = 0; pss.lifeMin = 0.5; pss.lifeMax = 0.8; pss.startSound = "RocketFountain"; rocketSettings.startSpeedMin = 1000; rocketSettings.startSpeedMax = 1400; rocketSettings.gravity.y = 1200; rocketSettings.addParticleSystemSetting(pss); //rocketSettings.addParticleSystemSetting(getSmoke()); return rocketSettings; }
RocketSettings SceneRetro::getRetroRocket(float hue, float hueChange) { RocketSettings rocketSettings; rocketSettings.startSpeedMin = 1000; rocketSettings.startSpeedMax = 1200; rocketSettings.drag = 0.95; ParticleSystemSettings trails = getPixelTrailParticles(hue, hueChange); ParticleSystemSettings explosion = getPixelExplosionParticles(hue, hueChange); explosion.emitDelay = trails.emitLifeTime; rocketSettings.addParticleSystemSetting(trails); rocketSettings.addParticleSystemSetting(explosion); return rocketSettings; }
RocketSettings SceneRealistic:: getBangerRocket() { RocketSettings rocketSettings; rocketSettings.startSpeedMin = 1000; rocketSettings.startSpeedMax = 1200; rocketSettings.directionVar = 4; rocketSettings.gravity.y = 200; rocketSettings.drag = 0.95; ParticleSystemSettings trails = getBangerTrails(); ParticleSystemSettings bang = getBangerBang(); ParticleSystemSettings bangCrackles = getBangerCrackles(); ParticleSystemSettings smoke1 = getSmoke(); ParticleSystemSettings smoke2 = getSmoke(); smoke2.emitMode = PARTICLE_EMIT_CONTINUOUS; smoke2.emitCount = 200; smoke2.emitLifeTime = 0.2; smoke2.sizeStartMax = 30; smoke2.speedMax = 100; smoke2.brightnessStartMin = 10; smoke2.brightnessStartMax = 30; bang.emitDelay = bangCrackles.emitDelay = trails.emitLifeTime = smoke1.emitLifeTime =smoke2.emitDelay = 2; rocketSettings.addParticleSystemSetting(trails); rocketSettings.addParticleSystemSetting(smoke1); rocketSettings.addParticleSystemSetting(smoke2); rocketSettings.addParticleSystemSetting(bang); rocketSettings.addParticleSystemSetting(bangCrackles); return rocketSettings; }
RocketSettings SceneRealistic :: getFountain(float hueStartOffset , float hueChange){ ParticleRendererBase* renderer = new ParticleRendererShape(); ParticleSystemSettings ps, ps2; // ParticleData // size range // size modifier // velocity range // life range // drag // gravity // colour // colour modifier // renderer // EmmisionData // Frequency // Burst/continuous // range of start sizes for particles // range of colours for particles // optional colour modifier // PHYSICS ps.speedMin = 0; ps.speedMax = 20; ps.directionZ = 0; ps.directionZVar = 90; ps.directionYVar = 180; ps.drag = 0.90; ps.gravity.set(0,30); //LIFE ps.lifeMin = 0.5; ps.lifeMax = 2; //APPEARANCE ps.sizeStartMin = 10; ps.sizeStartMax = 15; ps.sizeChangeRatio = 0; ps.hueStartMin = 0; ps.hueStartMax = 30; ps.hueChange = hueChange; ps.brightnessStartMin = 255; ps.brightnessStartMax = 255; ps.brightnessEnd = 255; ps.saturationMin = 0; ps.saturationMax = 0; ps.saturationEnd = 0; ps.shimmerMin = 0.1; // but also : // lifeExpectancy // delay ps.emitMode = PARTICLE_EMIT_CONTINUOUS; ps.emitCount = 200; ps.emitDelay = 0; ps.emitLifeTime= 0.6; ps.emitStartSizeModifier = 0; ps.emitSpeedModifier = 1; ps.emitHueModifierOffset = 0; //ps.emitAttachedPhysicsObject = &rocket; ps.emitInheritVelocity = 0.3; ps.startSound = "RocketFountain"; //psystem.init(ps); // optional colour modifier // PHYSICS ps2.speedMin = 15; ps2.speedMax = 20; ps2.directionZ = 0; ps2.directionZVar = 90; ps2.directionYVar = 180; ps2.drag = 0.90; ps2.gravity.set(0,-30); //LIFE ps2.lifeMin = 1; ps2.lifeMax = 1.5; //APPEARANCE ps2.sizeStartMin = 2; ps2.sizeStartMax = 5; ps2.sizeChangeRatio = 5; ps2.hueStartMin = 0+hueStartOffset; ps2.hueStartMax = 0+hueStartOffset; ps2.hueChange = 0; ps2.brightnessStartMin = 20; ps2.brightnessStartMax = 70; ps2.brightnessEnd = 0; ps2.saturationMin = 100; ps2.saturationMax = 100; ps2.saturationEnd = 100; //ps.shimmerMin = 0.1; // but also : // lifeExpectancy // delay ps2.emitStartSizeModifier = 0; //ps2.emitSpeedModifier = 0; ps2.emitMode = PARTICLE_EMIT_CONTINUOUS; ps2.emitCount = 500; ps2.emitDelay = 0; ps2.emitLifeTime= 0.5; ps2.renderer = ps.renderer = renderer; //ps2.velocityModifierSettings = new VelocityModifierSettings(200,300); RocketSettings rocketSettings; rocketSettings.startSpeedMin = 1000; rocketSettings.startSpeedMax = 1500; rocketSettings.direction = -90; rocketSettings.directionVar = 5; rocketSettings.gravity.y = 300; rocketSettings.drag = 0.9; rocketSettings.lifeTime = 1; rocketSettings.addParticleSystemSetting(ps); rocketSettings.addParticleSystemSetting(ps2); return rocketSettings; }
TriggerSettingsRocketRotator* SceneVectorizer :: getRocketTronFountain(float hueStartOffset, float hueChange) { ParticleRendererBase* particleRenderer = new ParticleRendererSquare(); ParticleRendererBase* particleLineRenderer = new ParticleRendererGlitchLine(1.5); ParticleSystemSettings ps, ps2; //particleLineRenderer->lineWidth = 2; //whiteImage.loadImage("img/ParticleWhite.png"); // ParticleData // size range // size modifier // velocity range // life range // drag // gravity // colour // colour modifier // renderer // EmmisionData // Frequency // Burst/continuous // range of start sizes for particles // range of colours for particles // optional colour modifier // PHYSICS ps.speedMin = 0; ps.speedMax = 30; ps.directionZ = -90; ps.directionZVar = 90; //ps.directionZVar = 0; ps.directionYVar = 0; ps.drag = 0.90; ps.gravity.set(0,0); //LIFE ps.lifeMin = 0.5; ps.lifeMax = 0.7; //APPEARANCE ps.sizeStartMin = 4; ps.sizeStartMax = 6; ps.sizeChangeRatio = 1; ps.hueStartMin = -5+hueStartOffset; ps.hueStartMax = 0+hueStartOffset; ps.hueChange = hueChange; ps.brightnessStartMin = 230; ps.brightnessStartMax = 255; ps.brightnessEnd = 0; ps.saturationMin = 150; ps.saturationMax = 255; ps.saturationEnd = 255; ps.emitMode = PARTICLE_EMIT_CONTINUOUS; ps.emitCount = 30; ps.emitDelay = 0; ps.emitLifeTime= 1.4; ps.emitStartSizeModifier = 0; ps.emitSpeedModifier = 10; ps.emitHueModifierOffset = 0; ps.emitInheritVelocity = 0; ps.startSound = "DirtyTechno"; ps.renderer = particleLineRenderer; RocketSettings* rs = new RocketSettings(); rs->startSpeedMin = 800; rs->startSpeedMax = 950; rs->direction = -90; rs->directionVar = 10; rs->gravity.y = 0; rs->lifeTime =1.4; rs->drag = 0.9; rs->addParticleSystemSetting(ps); TriggerSettingsRocketRotator* ts = new TriggerSettingsRocketRotator(); ts->rocketSettings = rs; ts->radius = 6; return ts; };
TriggerSettingsRocketOrb* SceneVectorizer :: getRocketTronFountain(float hueStartOffset, float hueChange, float speedMultiplier, bool useLaser) { ParticleRendererBase* particleLineRenderer; particleLineRenderer = new ParticleRendererGlitchLine(1.2); ParticleSystemSettings ps, ps2; //particleLineRenderer->lineWidth = 2; //whiteImage.loadImage("img/ParticleWhite.png"); // ParticleData // size range // size modifier // velocity range // life range // drag // gravity // colour // colour modifier // renderer // EmmisionData // Frequency // Burst/continuous // range of start sizes for particles // range of colours for particles // optional colour modifier // PHYSICS ps.speedMin = 0; ps.speedMax = 30; ps.directionZ = -90; ps.directionZVar = 90; //ps.directionZVar = 0; ps.directionYVar = 0; ps.drag = 0.90; ps.gravity.set(0,0); //LIFE ps.lifeMin = 0.5; ps.lifeMax = 0.7; //APPEARANCE ps.sizeStartMin = 4; ps.sizeStartMax = 6; ps.sizeChangeRatio = 1; ps.hueStartMin = -5+hueStartOffset; ps.hueStartMax = 0+hueStartOffset; ps.hueChange = hueChange; ps.brightnessStartMin = 230; ps.brightnessStartMax = 255; ps.brightnessEnd = 0; ps.saturationMin = 150; ps.saturationMax = 255; ps.saturationEnd = 255; ps.emitMode = PARTICLE_EMIT_CONTINUOUS; if(useLaser) ps.emitCount = 20; else ps.emitCount = 40; ps.emitDelay = 0; ps.emitLifeTime= 1.4; ps.emitStartSizeModifier = 0; ps.emitSpeedModifier = 10; ps.emitHueModifierOffset = 0; ps.emitInheritVelocity = 0; ps.startSound = "DirtyTechno"; ps.renderer = particleLineRenderer; RocketSettings* rs = new RocketSettings(); rs->startSpeedMin = 800 * speedMultiplier; rs->startSpeedMax = 950 * speedMultiplier; rs->direction = -90; rs->directionVar = 0; rs->gravity.y = 0; rs->setLifeTime(1.4); rs->drag = 0.9; //ps.timeSpeed = rs->timeSpeed = 0.8; RocketSettings* rs2 = NULL; if(useLaser) { rs2 = new RocketSettings(*rs); ParticleRendererBase* particleLineRendererLaser = new ParticleRendererGlitchLineLaser(); ParticleSystemSettings ps2(ps); ps2.renderer = particleLineRendererLaser; rs2->addParticleSystemSetting(ps2); } rs->addParticleSystemSetting(ps); TriggerSettingsRocketOrb* ts = new TriggerSettingsRocketOrb(); ts->addRocketSettings(rs); if(rs2!=NULL) { ts->addRocketSettings(rs2); vector<float>probs; probs.push_back(9); probs.push_back(1); ts->setProbabilities(probs); } ts->rotateOnFire = true; ts->rotationExtent = 20; ts->rotationSpeed = 4; ts->radius = 6; ts->rechargeSettings = TriggerRechargeSettings::superFastMultiples; ts->hue = hueStartOffset; ts->saturation = 200; return ts; };