Exemplo n.º 1
0
        private void picDisplay_MouseClick(object sender, MouseEventArgs e)
        {
            List <IImpactPoint> temp = new List <IImpactPoint>();

            switch (e.Button)
            {
            case MouseButtons.Left:
                cp = new CounterPoint
                {
                    X = emitter.MousePositionX,
                    Y = emitter.MousePositionY
                };

                emitter.impactPoints.Add(cp);
                break;

            case MouseButtons.Right:
                foreach (var ep in emitter.impactPoints)
                {
                    if (ep.GetType().Name == "CounterPoint")
                    {
                        double distance = Math.Sqrt(Math.Pow(emitter.MousePositionX - ep.X, 2) + Math.Pow(emitter.MousePositionX - ep.X, 2));
                        if (distance < ep.Power / 2)
                        {
                            temp.Add(ep);
                        }
                    }
                }
                break;
            }
            foreach (var t in temp)
            {
                emitter.impactPoints.Remove(t);
            }
        }
Exemplo n.º 2
0
        public Form1()
        {
            InitializeComponent();
            picDisplay.Image = new Bitmap(picDisplay.Width, picDisplay.Height);
            this.MouseWheel += new MouseEventHandler(this_MouseWheel);



            emitter = new TopEmitter
            {
                Width          = picDisplay.Width,
                GravitationY   = 0.25f,
                Speedmin       = 10,
                SpeedMax       = 50,
                ParticlesCount = 100
            };

            cp = new CounterPoint
            {
                X = picDisplay.Width / 2,
                Y = picDisplay.Height / 2
            };

            emitter.impactPoints.Add(cp);


            ColorOne = new PaintPoint    // Расположение первого круга
            {
                X         = picDisplay.Width / 2 - 420,
                Y         = picDisplay.Height / 2,
                FillColor = Color.Red,
                FellColor = Color.Red
            };
            emitter.impactPoints.Add(ColorOne);

            ColorTwo = new PaintPoint    // Расположение второго круга
            {
                X         = picDisplay.Width / 2 - 315,
                Y         = picDisplay.Height / 2,
                FillColor = Color.Green,
                FellColor = Color.Green
            };
            emitter.impactPoints.Add(ColorTwo);

            ColorThree = new PaintPoint    // Расположение третьего круга
            {
                X         = picDisplay.Width / 2 - 210,
                Y         = picDisplay.Height / 2,
                FillColor = Color.Blue,
                FellColor = Color.Blue
            };
            emitter.impactPoints.Add(ColorThree);

            ColorFour = new PaintPoint    // Расположение четвёртого круга
            {
                X         = picDisplay.Width / 2 - 105,
                Y         = picDisplay.Height / 2,
                FillColor = Color.Magenta,
                FellColor = Color.Magenta
            };
            emitter.impactPoints.Add(ColorFour);

            ColorFive = new PaintPoint    // Расположение пятого круга
            {
                X         = picDisplay.Width / 2,
                Y         = picDisplay.Height / 2,
                FillColor = Color.Yellow,
                FellColor = Color.Yellow
            };
            emitter.impactPoints.Add(ColorFive);


            ColorSix = new PaintPoint    // Расположение шестого круга
            {
                X         = picDisplay.Width / 2 + 105,
                Y         = picDisplay.Height / 2,
                FillColor = Color.Purple,
                FellColor = Color.Purple
            };
            emitter.impactPoints.Add(ColorSix);

            ColorSeven = new PaintPoint    // Расположение седьмого круга
            {
                X         = picDisplay.Width / 2 + 210,
                Y         = picDisplay.Height / 2,
                FillColor = Color.Orange,
                FellColor = Color.Orange
            };
            emitter.impactPoints.Add(ColorSeven);

            ColorEight = new PaintPoint    // Расположение восьмого круга
            {
                X         = picDisplay.Width / 2 + 315,
                Y         = picDisplay.Height / 2,
                FillColor = Color.Pink,
                FellColor = Color.Pink
            };
            emitter.impactPoints.Add(ColorEight);

            ColorNine = new PaintPoint    // Расположение девятого круга
            {
                X         = picDisplay.Width / 2 + 420,
                Y         = picDisplay.Height / 2,
                FillColor = Color.Brown,
                FellColor = Color.Brown
            };
            emitter.impactPoints.Add(ColorNine);
        }