/// <summary> /// Example of how to create a Particle Initialization Function /// </summary> /// <param name="cParticle">The Particle to be Initialized</param> public void InitializeParticleProperties(DefaultQuadParticle cParticle) { //----------------------------------------------------------- // TODO: Initialize all of the Particle's properties here. // If you plan on simply using the default InitializeParticleUsingInitialProperties // Particle Initialization Function (see the LoadParticleSystem() function above), // then you may delete this function all together. //----------------------------------------------------------- // Set the Particle's Lifetime (how long it should exist for) cParticle.Lifetime = 2.0f; // Set the Particle's initial Position to be wherever the Emitter is cParticle.Position = Emitter.PositionData.Position; // Set the Particle's Velocity Vector3 sVelocityMin = new Vector3(-50, 50, -50); Vector3 sVelocityMax = new Vector3(50, 100, 50); cParticle.Velocity = DPSFHelper.RandomVectorBetweenTwoVectors(sVelocityMin, sVelocityMax); // Adjust the Particle's Velocity direction according to the Emitter's Orientation cParticle.Velocity = Vector3.Transform(cParticle.Velocity, Emitter.OrientationData.Orientation); // Give the Particle a random Size // Since we have Size Lerp enabled we must also set the Start and End Size cParticle.Width = cParticle.StartWidth = cParticle.EndWidth = cParticle.Height = cParticle.StartHeight = cParticle.EndHeight = RandomNumber.Next(10, 50); // Give the Particle a random Color // Since we have Color Lerp enabled we must also set the Start and End Color cParticle.Color = cParticle.StartColor = cParticle.EndColor = DPSFHelper.RandomColor(); }
public void InitializeParticleSpray(DefaultQuadParticle cParticle) { cParticle.Lifetime = 3.0f; cParticle.Position = Emitter.PositionData.Position; // Update Velocity direction according to Emitter's Orientation cParticle.Velocity = new Vector3(RandomNumber.Next(20, 100), RandomNumber.Next(5, 50), RandomNumber.Next(-25, 25)); cParticle.Velocity = Vector3.Transform(cParticle.Velocity, Emitter.OrientationData.Orientation); cParticle.Size = 0.3f; // Set how much gravitational force to use (when gravity is enabled) cParticle.ExternalForce = new Vector3(0, -30, 0); cParticle.Color = DPSFHelper.RandomColor(); }
public void InitializeParticleWall(DefaultQuadParticle cParticle) { cParticle.Lifetime = 1.0f; cParticle.Position = new Vector3(RandomNumber.Next(-200, 200), RandomNumber.Next(-40, 160), RandomNumber.Next(0, 100)); // Update the Particle's Position according to the Emitters Orientation and Position cParticle.Position = Vector3.Transform(cParticle.Position, Emitter.OrientationData.Orientation); cParticle.Position += Emitter.PositionData.Position; cParticle.Size = 0.3f; cParticle.Color = DPSFHelper.RandomColor(); if (mbGravityEnabled) { cParticle.Velocity = new Vector3(0, RandomNumber.Next(-50, -5), 0); } cParticle.Acceleration = Vector3.Zero; }
//=========================================================== // Particle Update Functions //=========================================================== //----------------------------------------------------------- // TODO: Place your Particle Update functions here, using the // same function prototype as below (i.e. public void FunctionName(DPSFParticle, float)) //----------------------------------------------------------- /// <summary> /// Example of how to create a Particle Event Function /// </summary> /// <param name="cParticle">The Particle to update</param> /// <param name="fElapsedTimeInSeconds">How long it has been since the last update</param> protected void UpdateParticleFunctionExample(DefaultQuadParticle cParticle, float fElapsedTimeInSeconds) { // Place code to update the Particle here // Example: cParticle.Position += cParticle.Velocity * fElapsedTimeInSeconds; }