Example #1
0
        void addFirework(double x, double y)
        {
            int seed = (int)DateTime.Now.Ticks;

            for (int i = 0; i < FIREWORK_NUM; i++)
            {
                seed += (int)DateTime.Now.Ticks;
                Random r     = new Random(seed);
                double size  = SIZE_MIN + (SIZE_MAX - SIZE_MIN) * r.NextDouble();
                byte   red   = (byte)(128 + (128 * r.NextDouble()));
                byte   green = (byte)(128 + (128 * r.NextDouble()));
                byte   blue  = (byte)(128 + (128 * r.NextDouble()));

                double xVelocity = X_VELOCITY - 2 * X_VELOCITY * r.NextDouble();
                double yVelocity = -Y_VELOCITY *r.NextDouble();

                MagicDot dot = new MagicDot(red, green, blue, size);
                dot.X         = x;
                dot.Y         = y;
                dot.XVelocity = xVelocity;
                dot.YVelocity = yVelocity;
                dot.Gravity   = GRAVITY;
                dot.RunFirework();
                _fireworks.Add(dot);

                LayoutRoot.Children.Add(dot);
            }
        }
Example #2
0
        /////////////////////////////////////////////////////
        // Private Methods
        /////////////////////////////////////////////////////

        void moveFirework()
        {
            for (int i = _fireworks.Count - 1; i >= 0; i--)
            {
                MagicDot dot = _fireworks[i];
                dot.RunFirework();
                if (dot.Opacity <= 0.1)
                {
                    LayoutRoot.Children.Remove(dot);
                    _fireworks.Remove(dot);
                }
            }
        }