Пример #1
0
        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;
            }
        }
Пример #2
0
        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);
        }
Пример #3
0
        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;
            }
        }