Ejemplo n.º 1
0
        public void TestFillProperty()
        {
            Color       color   = Colors.Azure;
            EllipseInfo ellipse = new EllipseInfo();

            ellipse.Fill = color;
            Assert.AreEqual(ellipse.Fill, color);
        }
Ejemplo n.º 2
0
        public void TestStrokeProperty()
        {
            Color       color   = Colors.AntiqueWhite;
            EllipseInfo ellipse = new EllipseInfo();

            ellipse.Stroke = color;
            Assert.AreEqual(ellipse.Stroke, color);
        }
Ejemplo n.º 3
0
        public void TestWidthProperty()
        {
            double      width   = 54;
            EllipseInfo ellipse = new EllipseInfo();

            ellipse.Width = width;
            Assert.AreEqual(ellipse.Width, width);
        }
Ejemplo n.º 4
0
        public void TestHeightProperty()
        {
            double      height  = 54;
            EllipseInfo ellipse = new EllipseInfo();

            ellipse.Height = height;
            Assert.AreEqual(ellipse.Height, height);
        }
Ejemplo n.º 5
0
        public void TestTopLeftProperty()
        {
            Point       point   = new Point(10, 12.5);
            EllipseInfo ellipse = new EllipseInfo();

            ellipse.TopLeft = point;
            Assert.AreEqual(ellipse.TopLeft, point);
        }
Ejemplo n.º 6
0
        public void TestNameProperty()
        {
            string      name    = "shape1";
            EllipseInfo ellipse = new EllipseInfo();

            ellipse.Name = name;
            Assert.AreEqual(ellipse.Name, name);
        }
        private void RenderFrame(object sender, EventArgs e)
        {
            if (ellipses.Count == 0)
            {
                // Animation just started. Create the ellipses.
                int halfCanvasWidth = (int)canvas.ActualWidth / 2;

                Random rand         = new Random();
                int    ellipseCount = rand.Next(minEllipses, maxEllipses + 1);
                for (int i = 0; i < ellipseCount; i++)
                {
                    Ellipse ellipse = new Ellipse();
                    ellipse.Fill   = Brushes.LimeGreen;
                    ellipse.Width  = ellipseRadius;
                    ellipse.Height = ellipseRadius;
                    Canvas.SetLeft(ellipse, halfCanvasWidth + rand.Next(-halfCanvasWidth, halfCanvasWidth));
                    Canvas.SetTop(ellipse, 0);
                    canvas.Children.Add(ellipse);

                    EllipseInfo info = new EllipseInfo(ellipse, speedRatio * rand.Next(minStartSpeed, maxStartSpeed));
                    ellipses.Add(info);
                }
            }
            else
            {
                for (int i = ellipses.Count - 1; i >= 0; i--)
                {
                    EllipseInfo info = ellipses[i];
                    double      top  = Canvas.GetTop(info.Ellipse);
                    Canvas.SetTop(info.Ellipse, top + 1 * info.VelocityY);

                    if (top >= (canvas.ActualHeight - 2 * ellipseRadius - 10))
                    {
                        // This circle has reached the bottom.
                        // Stop animating it.
                        ellipses.Remove(info);
                    }
                    else
                    {
                        // Increase the velocity.
                        info.VelocityY += accelerationY;
                    }

                    if (ellipses.Count == 0)
                    {
                        // End this animation.
                        // There's no reason to keep calling this method if it has no work to do.
                        StopRendering();
                    }
                }
            }
        }
Ejemplo n.º 8
0
        public void TestAddEllipse()
        {
            EllipseCanvas canvas  = new EllipseCanvas();
            Point         pos     = new Point(20, 20);
            double        height  = 10;
            double        width   = 40;
            string        name    = "name";
            EllipseInfo   ellipse = CreateEllipse(pos, width, height, name);

            canvas.AddEllipse(ellipse);
            EllipseInfo addedEllipse = canvas.Ellipses[0];

            Assert.AreEqual(ellipse.Name, addedEllipse.Name);
            Assert.AreEqual(ellipse.Height, addedEllipse.Height);
            Assert.AreEqual(ellipse.Width, addedEllipse.Width);
            Assert.AreEqual(ellipse.TopLeft, addedEllipse.TopLeft);
            Assert.AreEqual(1, canvas.Ellipses.Count);
        }
Ejemplo n.º 9
0
        public void TestRemoveEllipse()
        {
            EllipseCanvas canvas       = new EllipseCanvas();
            int           ellipseCount = 10;

            for (int i = 0; i < ellipseCount; ++i)
            {
                canvas.AddEllipse(CreateEllipse(new Point(100 * i, 50 * i), 20 * i, 30 * i, "item"));
            }

            Point       pos     = new Point(20, 20);
            double      height  = 10;
            double      width   = 40;
            string      name    = "name";
            EllipseInfo ellipse = CreateEllipse(pos, width, height, name);

            canvas.AddEllipse(ellipse);
            canvas.RemoveEllipse(ellipse);

            Assert.AreEqual(ellipseCount, canvas.Ellipses.Count);
            Assert.IsFalse(canvas.Ellipses.Contains(ellipse));
        }
Ejemplo n.º 10
0
        private void RenderFrame(object sender, EventArgs e)
        {
            if (ellipses.Count == 0)
            {
                Random rand = new Random();
                double spreadX;
                double spreadY;

                for (int i = 0; i < bulletPhysics.GetCountBullets(); i++)
                {
                    if (rand.Next(1, 11) > 5)
                    {
                        spreadX = clickX - spread * rand.Next(50, 100);
                    }
                    else
                    {
                        spreadX = clickX + spread * rand.Next(50, 100);
                    }
                    if (rand.Next(1, 11) > 5)
                    {
                        spreadY = clickY - spread * rand.Next(50, 100);
                    }
                    else
                    {
                        spreadY = clickY + spread * rand.Next(50, 100);
                    }

                    Ellipse ellipse = new Ellipse();
                    ellipse.Fill   = BrushesSelected(); // сделать ввод из комбобокса
                    ellipse.Width  = bulletPhysics.GetSizeBullet();
                    ellipse.Height = bulletPhysics.GetSizeBullet();
                    Canvas.SetLeft(ellipse, 125);
                    Canvas.SetTop(ellipse, 125);
                    Map.Children.Add(ellipse);

                    EllipseInfo info = new EllipseInfo(ellipse, bulletPhysics.GetVelocity(), spreadX, spreadY);
                    ellipses.Add(info);
                }

                for (int i = 0; i < 1; i++)
                {
                    Rectangle rectangle = new Rectangle();
                    rectangle.Fill   = Brushes.Black;
                    rectangle.Width  = 100;
                    rectangle.Height = 100;
                    Canvas.SetLeft(rectangle, 325);
                    Canvas.SetTop(rectangle, 325);
                    Map.Children.Add(rectangle);

                    RectangleInfo info = new RectangleInfo(rectangle);
                    wall.Add(info);
                }
            }
            else
            {
                for (int i = ellipses.Count - 1; i >= 0; i--)
                {
                    EllipseInfo info   = ellipses[i];
                    double      left   = Canvas.GetLeft(info.Ellipse);
                    double      top    = Canvas.GetTop(info.Ellipse);
                    double      catet1 = Math.Abs(info.SpreadPathBulletX - left);
                    double      catet2 = Math.Abs(info.SpreadPathBulletY - top);
                    double      len    = Math.Sqrt(catet1 * catet1 + catet2 * catet2);
                    catet1 /= len;
                    catet2 /= len;

                    if (clickX > left)
                    {
                        Canvas.SetLeft(info.Ellipse, left + catet1 * info.VelocityY);
                    }
                    else if (left > clickX)
                    {
                        Canvas.SetLeft(info.Ellipse, left - catet1 * info.VelocityY);
                    }
                    if (clickY > top)
                    {
                        Canvas.SetTop(info.Ellipse, top + catet2 * info.VelocityY);
                    }
                    else if (top > clickY)
                    {
                        Canvas.SetTop(info.Ellipse, top - catet2 * info.VelocityY);
                    }

                    UIElementCollection children1 = Map.Children;
                    var children = children1.OfType <UIElement>().ToList();
                    foreach (var recc in children)
                    {
                        if (recc is Rectangle)
                        {
                            Rectangle rec     = recc as Rectangle;
                            double    wallY   = Canvas.GetTop(rec);
                            double    wallX   = Canvas.GetLeft(rec);
                            double    bulletY = Canvas.GetTop(info.Ellipse);
                            double    bulletX = Canvas.GetLeft(info.Ellipse);

                            if ((wallY + 100 >= bulletY && wallY <= bulletY) && (wallX + 100 >= bulletX && wallX <= bulletX))
                            {
                                Map.Children.Remove(info.Ellipse);
                                ellipses.Remove(info);
                                break;
                            }
                            else
                            {
                                if (info.SpreadPathBulletY + 16 + spread * 100 >= top && info.SpreadPathBulletY - 16 - spread * 100 <= top && info.SpreadPathBulletX + 16 + spread * 100 >= left && info.SpreadPathBulletX - 16 - spread * 100 <= left)
                                {
                                    Map.Children.Remove(info.Ellipse);
                                    ellipses.Remove(info);
                                }
                                else if (bulletPhysics.GetBurstBullet() == true && bulletPhysics.GetCountBullets() > 1 && ellipses.Count == i)
                                {
                                    info.VelocityY += accelerationY;
                                }
                            }
                        }
                    }

                    if (ellipses.Count == 0)
                    {
                        StopRendering();
                        clickCanvasOn = true;
                    }
                }
            }
        }
Ejemplo n.º 11
0
 /// <summary>
 /// Initializes a new instance of the <see cref="EllipseListChangedEventArgs"/> class
 /// </summary>
 /// <param name="ellipse">Shape ellipse</param>
 /// <param name="canvas">Canvas drawing area</param>
 public EllipseListChangedEventArgs(EllipseInfo ellipse, EllipseCanvas canvas)
 {
     this.Ellipse = ellipse;
     this.Canvas  = canvas;
 }