public static void SpawnRainDrop(Vector2f position, Vector2f velocity, ParticleProperties props) { CheckInitialized(); Shape newShape = new RectangleShape(new Vector2f(props.sizeSingle, 5)); //newShape.Rotation = 20.0f * (float)(Math.PI * Math.Atan(velocity.Y / velocity.X)); Color newColor = props.col; newColor.A = 100; newShape.FillColor = newColor; ShapeParticle particle = new ShapeParticle(newShape, props.lifeTime, position, velocity); particle.FrictionCoefficient = 1.0f - 0.01f * (float)RandomGenerator.Random.NextDouble(); particle.AlphaChangeType = PennerDoubleAnimation.EquationType.None; particle.AffectedByGravity = props.AffectedByGravity; particle.RotationType = props.RotationType; _particleList.Add(particle); }
public static void SpawnSmokePuff(Vector2f position, Vector2f velocity, Color col, float smokePuffSize, float lifeTime = 1.5f) { CheckInitialized(); Shape newShape = new CircleShape(smokePuffSize); newShape.Origin = new Vector2f(smokePuffSize / 2.0f, smokePuffSize / 2.0f); Color newColor = col; newColor.A = 25; newShape.FillColor = newColor; ShapeParticle particle = new ShapeParticle( newShape, lifeTime * (0.25f + (float)RandomGenerator.Random.NextDouble() + 0.5f), position, velocity); particle.FrictionCoefficient = 0.98f; _particleList.Add(particle); }
public static void SpawnSingleDebris(Vector2f position, Vector2f velocity, Color col, float size, float lifeTime = 0.5f) { CheckInitialized(); Shape newShape = new RectangleShape(new Vector2f(size * 1.5f, size * 0.4f)); newShape.Origin = new Vector2f(size / 2.0f, size / 2.0f); newShape.Rotation = 20.0f * (float)(Math.PI * Math.Atan(velocity.Y / velocity.X)); Color newColor = col; newColor.A = 125; newShape.FillColor = newColor; ShapeParticle particle = new ShapeParticle(newShape, lifeTime * ((float)RandomGenerator.Random.NextDouble() + 0.25f), position, velocity); particle.FrictionCoefficient = 0.9f; particle.AlphaChangeType = PennerDoubleAnimation.EquationType.QuintEaseIn; particle.AffectedByGravity = true; particle.RotationType = ParticleRotationType.PRT_Velocity; _particleList.Add(particle); }