Beispiel #1
0
        public virtual Particle CreateParticle()
        {
            var particle = new ParticleColorful();

            particle.FromColor = ColorFrom;
            particle.ToColor   = ColorTo;

            return(particle);
        }
Beispiel #2
0
        public int Width; // длина экрана

        public override void ResetParticle(ParticleColorful particle)
        {
            base.ResetParticle(particle); // вызываем базовый сброс частицы, там жизнь переопределяется и все такое

            // а теперь тут уже подкручиваем параметры движения
            particle.X = Particle.rand.Next(Width); // позиция X -- произвольная точка от 0 до Width
            particle.Y = 0;                         // ноль -- это верх экрана

            particle.FromColor = Color.White;
            particle.ToColor   = Color.FromArgb(0, Color.Wheat);
            particle.SpeedY    = 1;                         // падаем вниз по умолчанию
            particle.SpeedX    = Particle.rand.Next(-2, 2); // разброс влево и вправа у частиц
        }
Beispiel #3
0
        public int counter;                  // переменная для счета частиц

        public override void ImpactParticle(ParticleColorful particle)
        {
            float gX = X - particle.X;
            float gY = Y - particle.Y;

            double r = Math.Sqrt(gX * gX + gY * gY); // считаем расстояние от центра точки до центра частицы

            if (r + particle.Radius < Radius / 2)    // если частица оказалось внутри окружности
            {
                particle.Life = 0;
                counter++; // растет при смерти точки
            }
        }
Beispiel #4
0
        public override void ImpactParticle(ParticleColorful particle)
        {
            float gX = X - particle.X;
            float gY = Y - particle.Y;

            double r = Math.Sqrt(gX * gX + gY * gY); // считаем расстояние от центра точки до центра частицы

            if (r + particle.Radius < Radius / 2)    // если частица оказалось внутри окружности
            {
                // то меняем ее диапазон рассеивания цветов
                particle.FromColor = pColor;
                particle.ToColor   = Color.FromArgb(0, pColor);
            }
        }
Beispiel #5
0
        public virtual void ResetParticle(ParticleColorful particle)
        {
            particle.Life = Particle.rand.Next(LifeMin, LifeMax);

            particle.X         = X;
            particle.Y         = Y;
            particle.FromColor = Color.White;
            particle.ToColor   = Color.FromArgb(0, Color.Wheat);
            var direction = Direction
                            + (double)Particle.rand.Next(Spreading)
                            - Spreading / 2;

            var speed = Particle.rand.Next(SpeedMin, SpeedMax);

            particle.SpeedX = (float)(Math.Cos(direction / 180 * Math.PI) * speed);
            particle.SpeedY = -(float)(Math.Sin(direction / 180 * Math.PI) * speed);

            particle.Radius = Particle.rand.Next(RadiusMin, RadiusMax);
        }
Beispiel #6
0
        public Color pColor; //Цвет нашей красящей тчк

        public abstract void ImpactParticle(ParticleColorful particle);