public override void OnTrigger(uint triggerId, bool risingEdge) { if (!risingEdge) { return; } switch ((TriggerId)triggerId) { case TriggerId.BeamMeUp: var particleConfig = new ParticleConfig { Angle = 0, Life = float.MaxValue, Speed = _particleSpeed, Position = new Vector2(0, 0), AxisPosition = new Vector2(0, 0), BeginSize = _particleSize, EndSize = _particleSize, BeginColor = _color, EndColor = _color }; _particleSystem.AddParticle(particleConfig); break; } }
private void AddSparkle(float x, float y) { var endColor = new SKColor(0, 0, 0); var particleConfig = new ParticleConfig { Angle = 0, Life = (float)(MaxParticleLife * _random.NextDouble()), Speed = 0, Position = new Vector2(x, y), AxisPosition = new Vector2(0, 0), BeginSize = _particleSize, EndSize = _particleSize, BeginColor = _color, EndColor = endColor }; _particleSystem.AddParticle(particleConfig); }
public override void OnTrigger(uint triggerId, bool risingEdge) { if (!risingEdge) { return; } switch ((TriggerId)triggerId) { case TriggerId.Sparkle: var rand = new Random(); for (int i = 0; i < _numParticles; i++) { var life = (float)(MaxParticleLife * rand.NextDouble()); var nextX = (float)(Width * rand.NextDouble()); var nextY = (float)(Height * rand.NextDouble()); var particleConfig = new ParticleConfig { Angle = 0, Life = life, Speed = 0, Position = new Vector2(nextX, nextY), AxisPosition = new Vector2(0, 0), BeginSize = _particleSize, EndSize = _particleSize, BeginColor = _color, EndColor = _color }; _particleSystem.AddParticle(particleConfig); } break; } }