public override void Processes(Partical input, float dt) { float amount = input.LifeTime / (input.Age + input.LifeTime); amount = 1 - amount; //get invers input.Colour = Color.Lerp(InitialColor, EndColor, amount); }
public override void Processes(Partical input, float dt) { float amount = input.LifeTime / (input.Age + input.LifeTime); amount = 1 - amount; //get invers input.Fade = (EndFade - InitialFade) * amount + InitialFade; }
public Algorithm(int change = 20, int particle = 20, int dim = 2, int bottom = -100, int up = 100) { Globle.MAX_CHANGE = change; Globle.MAX_DIM = dim; Globle.MAX_PARTICLE = particle; Globle.GlobleBestFitness = 0; Globle.Up = up; Globle.Bottom = bottom; Globle.Lines = new List<Polyline>(Globle.MAX_PARTICLE); Globle.GlobleBestPostion = new List<double>(Globle.MAX_DIM); //Globle.partical = new List<Partical>(Globle.MAX_PARTICLE); this.partical = new List<Partical>(Globle.MAX_PARTICLE); this.CurrentTime = 0; Globle.MaxSpeed = new List<double>(Globle.MAX_DIM); Globle.MaxPostion = new List<double>(Globle.MAX_DIM); for (int i = 0; i < Globle.MAX_DIM; i++) { Random ra = new Random(); Globle.MaxPostion.Add(up); Globle.MaxSpeed.Add(up / (1.5)); Globle.GlobleBestPostion.Add(ra.Next(bottom,up)); } Globle.GlobleBestFitness = Globle.GlobleBestPostion[0] + Globle.GlobleBestPostion[1]; for (int i = 0; i < Globle.MAX_PARTICLE; i++) { Partical newPartical = new Partical(Globle.MAX_DIM, bottom, up); //Globle.partical.Add(newPartical); this.partical.Add(newPartical); } }
public override void Processes(Partical input, float dt) { float amount = input.LifeTime / (input.Age + input.LifeTime); amount = 1 - amount; //get invers input.Colour = BasicMath.Lerp3(InitialColor, MiddleColour, MiddleColourPosition, EndColour, amount); }
public override void Processes(Partical input, float dt) { if (KillCheck == KillDirectoin.All) { if (!LiveArea.Contains(input.Position)) { input.LifeTime = 0; } } else if (KillCheck == KillDirectoin.Left) { if (input.Position.X < LiveArea.X) { input.LifeTime = 0; } } else if (KillCheck == KillDirectoin.Right) { if (input.Position.X > LiveArea.X) { input.LifeTime = 0; } } }
protected override void TriggerParticals(Vector2 pos, int amount) { for (int i = 0; i < amount; i++) { Partical p = GenerateParticalProperties( Vector2.Transform(new Vector2(_random.Next(0, (int)Radius), 0), Matrix.CreateRotationZ((float)_random.NextDouble() * MathHelper.TwoPi))); switch (Function) { case EmmiterFunction.Explosive: p.Velocity = p.Position; p.Velocity.Normalize(); p.Velocity *= ParticalSpeed.GetValue(); break; case EmmiterFunction.Implosive: p.Velocity = -p.Position; p.Velocity.Normalize(); p.Velocity *= ParticalSpeed.GetValue(); break; } p.Position = p.Position + pos; Particals.Add(p); } }
public override void Processes(Partical input, float dt) { float amount = input.LifeTime / (input.Age + input.LifeTime); amount = 1 - amount; //get invers input.Fade = BasicMath.Lerp3(InitialFade, MiddleStateFade, MiddleLifeTime, EndFade, amount); }
public override void Processes(Partical input, float dt) { float amount = input.LifeTime / (input.Age + input.LifeTime); float end = input.InititalScale * EndScale; amount = 1 - amount; //get invers input.Scale = MathHelper.Lerp(input.InititalScale, end, amount); }
public static double Function(Partical partical) { double ans = 0; for (int i = 0; i < partical.MAX_DIM; i++) { ans += partical.Position[i]; } return ans; }
public override void Processes(Partical input, float dt) { if (DampenVelocity) { input.Velocity *= _dampaningMultiplyer; } if (DampenAngulorVelocity) { input.AngulorRotation *= _angulorDampaningMultiplyer; } }
// Use this for initialization void Start() { instance = this; }
public override void Processes(Partical input, float dt) { input.Velocity += Gravity * dt; }
public override void Processes(Partical input, float dt) { input.Position.Y = input.Position.Y + (Amount * dt * (float)Math.Cos(input.LifeTime * Speed)); input.Position.X = input.Position.X + (Amount * dt * (float)Math.Sin(input.LifeTime * Speed)); }
public override void Processes(Partical input, float dt) { input.AngulorRotation = (Amount * dt * (float)Math.Sin(input.LifeTime * Speed)); }
public abstract void Processes(Partical input, float dt);