public void Update(Particle _particle) { var nextPosition = _particle.Position() + _particle.Rocket.DeltaPosition(); _particle.X = nextPosition.X; _particle.Y = nextPosition.Y; if (_particle.Rocket.Speed > 1f) { _particle.Rocket.Angle += 1f * Game.Delta; } _particle.Rocket.Speed -= 100 * Game.Delta; _particle.Size -= Basics.Utils.RandomFloat() * _particle.Age * 0.00005f; _particle.Color = ColorExtensions.Darkened(_particle.Color, (_particle.Rocket.SpeedMax - _particle.Rocket.Speed) * 0.5f * Game.Delta); }
public void Update(Particle _particle) { var nextPosition = _particle.Position() + _particle.Rocket.DeltaPosition(); _particle.X = nextPosition.X; _particle.Y = nextPosition.Y; _particle.Rocket.Speed -= 50 * Game.Delta; _particle.Size -= Basics.Utils.RandomFloat() * _particle.Age * 0.0005f; var size = _particle.Size / 6f; var size4 = size * size * size * size; if (Basics.Utils.RandomDouble() >= size4) { _particle.Rocket.Angle += (float)(Math.PI * 2 * Basics.Utils.RandomSign() * Basics.Utils.RandomFloat() * Game.Delta); } _particle.Color = ColorExtensions.Darkened(_particle.Color, (_particle.Rocket.SpeedMax - _particle.Rocket.Speed) * 0.8f * Game.Delta); }