Ejemplo n.º 1
0
        public void ToggleRectVisibilityOnClick()
        {
            var rect = new FilledRect(Rectangle.FromCenter(Vector2D.Half, new Size(0.2f)), Color.Orange);

            new Command(() => ChangeVisibility(rect)).Add(new MouseButtonTrigger(MouseButton.Left,
                                                                                 State.Releasing));
        }
Ejemplo n.º 2
0
        public void DefaultRectIsRectangleZeroAndWhite()
        {
            var rect = new FilledRect(Rectangle.One, Color.White);

            Assert.AreEqual(Rectangle.One, rect.DrawArea);
            Assert.AreEqual(Color.White, rect.Color);
        }
Ejemplo n.º 3
0
 private void Initialize()
 {
     if (map.RenderIn3D)
     {
         if (grid3D != null)
         {
             Dispose3D();                     //ncrunch: no coverage
         }
         grid3D = new Grid3D(map.Size)
         {
             RenderLayer = 10
         };
         models = new Model[(int)map.Size.Width * (int)map.Size.Height];
     }
     else
     {
         if (grid2D != null)
         {
             Dispose2D();                     //ncrunch: no coverage
         }
         grid2D = new Grid2D(map.Size, Vector2D.Half, GridScale)
         {
             RenderLayer = 10
         };
         rectangles = new FilledRect[(int)map.Size.Width * (int)map.Size.Height];
     }
 }
Ejemplo n.º 4
0
        public void CheckCollisionOnAllSidesWithRotatedRectangles()
        {
            var rect = new FilledRect(new Rectangle(0.4f, 0.4f, 0.2f, 0.2f), Color.White);
            var top  = new FilledRect(new Rectangle(0.4f, 0.2f, 0.2f, 0.2f), Color.Yellow)
            {
                Rotation = 45
            };
            var left = new FilledRect(new Rectangle(0.2f, 0.4f, 0.2f, 0.2f), Color.Blue)
            {
                Rotation = 135
            };
            var bottom = new FilledRect(new Rectangle(0.4f, 0.6f, 0.2f, 0.2f), Color.Green)
            {
                Rotation = 225
            };
            var right = new FilledRect(new Rectangle(0.6f, 0.4f, 0.2f, 0.2f), Color.Red)
            {
                Rotation = 315
            };

            Assert.IsTrue(rect.DrawArea.IsColliding(0, top.DrawArea, top.Rotation));
            Assert.IsTrue(rect.DrawArea.IsColliding(0, left.DrawArea, left.Rotation));
            Assert.IsTrue(rect.DrawArea.IsColliding(0, bottom.DrawArea, bottom.Rotation));
            Assert.IsTrue(rect.DrawArea.IsColliding(0, right.DrawArea, right.Rotation));
        }
Ejemplo n.º 5
0
        public BaseButton(ButtonType buttonType = ButtonType.Empty, BaseAnimation clickAnimation = null)
        {
            this.ClickAnimation = (clickAnimation == null ? Game.Content.Animations.Press10 : clickAnimation);

            this.m_back = new FilledRect()
            {
                Alpha = Game.Content.Colors.ButtonBackAlpha
            };
            this.m_back.SetColor(Game.Content.Colors.ButtonBack);

            switch (buttonType)
            {
            case ButtonType.MainMenuButton:
            {
                this.Width  = Game.Content.GetSizeInDpi(200);
                this.Height = Game.Content.GetSizeInDpi(40);
            }
            break;

            case ButtonType.FieldButton:
            {
                this.Width  = Game.Content.GetSizeInDpi(40);
                this.Height = Game.Content.GetSizeInDpi(40);
            }
            break;

            default:
                break;
            }
        }
Ejemplo n.º 6
0
        public void RenderSpinningRectangleAttachedToMouse()
        {
            var rect = new FilledRect(new Rectangle(0.5f, 0.5f, 0.4f, 0.1f), Color.Blue);

            rect.Start <Spin>();
            new Command(point => rect.DrawArea = Rectangle.FromCenter(point, rect.DrawArea.Size)).Add(
                new MouseMovementTrigger());
        }
Ejemplo n.º 7
0
        public void PointsShouldBeAddedCounterClockWise()
        {
            var filledRect = new FilledRect(new Rectangle(0.3f, 0.3f, 0.4f, 0.4f), Color.Blue);

            Assert.IsTrue(filledRect.Points[0].X < filledRect.Points[3].X);
            Assert.IsTrue(filledRect.Points[1].Y > filledRect.Points[0].Y);
            Assert.IsTrue(filledRect.Points[2].X > filledRect.Points[1].X);
            Assert.IsTrue(filledRect.Points[3].Y < filledRect.Points[2].Y);
        }
Ejemplo n.º 8
0
        public void MovingARectangleWithTheArrows()
        {
            var rect = new FilledRect(new Rectangle(0.4f, 0.4f, 0.2f, 0.2f), Color.Green);

            new Command(Command.MoveDown, () => rect.DrawArea  = rect.DrawArea.Move(0, 0.01f));
            new Command(Command.MoveUp, () => rect.DrawArea    = rect.DrawArea.Move(0, -0.01f));
            new Command(Command.MoveLeft, () => rect.DrawArea  = rect.DrawArea.Move(-0.01f, 0));
            new Command(Command.MoveRight, () => rect.DrawArea = rect.DrawArea.Move(0.01f, 0));
        }
Ejemplo n.º 9
0
        public void RenderRectAndLine()
        {
            var drawArea = new Rectangle(0.3f, 0.3f, 0.4f, 0.4f);
            var rect     = new FilledRect(drawArea, Color.Red);
            var line     = new Line2D(drawArea, Color.Yellow)
            {
                RenderLayer = 1
            };

            new Command(Command.Drag, position => rect.Center = line.Center = position);
        }
Ejemplo n.º 10
0
 public void ControlRectanglesWithMouseAndWhenTheyCollideTheyChangeColor()
 {
     var r1 = new FilledRect(new Rectangle(0.2f, 0.2f, 0.1f, 0.1f), Color.Red) { Rotation = 45 };
     var r2 = new FilledRect(new Rectangle(0.6f, 0.6f, 0.1f, 0.2f), Color.Red) { Rotation = 70 };
     r1.Start<CollidingChangesColor>();
     r2.Start<CollidingChangesColor>();
     new Command(point => r1.Center = point).Add(new MouseButtonTrigger(MouseButton.Left,
         State.Pressed));
     new Command(point => r2.Center = point).Add(new MouseButtonTrigger(MouseButton.Right,
         State.Pressed));
 }
Ejemplo n.º 11
0
        public void RenderRotatingRect()
        {
            var rect = new FilledRect(Rectangle.FromCenter(Vector2D.Half, new Size(0.2f)), Color.Orange)
            {
                Rotation = 0
            };

            rect.Add(new SimplePhysics.Data {
                Gravity = Vector2D.Zero, RotationSpeed = 5
            });
            rect.Start <SimplePhysics.Rotate>();
        }
Ejemplo n.º 12
0
		internal static void DragToCreateRectangles(InputTrigger trigger)
		{
			var rectangle = new FilledRect(Rectangle.Unused, Color.GetRandomColor());
			new Command((start, end, done) =>
			//ncrunch: no coverage start
			{
				rectangle.DrawArea = Rectangle.FromCorners(start, end);
				if (done)
					rectangle = new FilledRect(Rectangle.Unused, Color.GetRandomColor());
			}).Add(trigger);
			//ncrunch: no coverage end
		}
Ejemplo n.º 13
0
		public void DragMouseVerticalToCreateRectangles()
		{
			var rectangle = new FilledRect(Rectangle.Unused, Color.GetRandomColor());
			//ncrunch: no coverage start
			new Command((start, end, done) =>
			{
				rectangle.DrawArea = new Rectangle(start.X - 0.01f, start.Y, 0.02f, end.Y - start.Y);
				if (done)
					rectangle = new FilledRect(Rectangle.Unused, Color.GetRandomColor());
			}).Add(new MouseDragTrigger(MouseButton.Left, DragDirection.Vertical));
			//ncrunch: no coverage end
		}
Ejemplo n.º 14
0
 public void RectangleCornersAreCorrect()
 {
     var rect = new FilledRect(Rectangle.One, Color.White);
     var corners = new List<Vector2D>
     {
         Vector2D.Zero,
         Vector2D.UnitX,
         Vector2D.One,
         Vector2D.UnitY
     };
     AdvanceTimeAndUpdateEntities();
     Assert.AreEqual(corners, rect.Points);
 }
Ejemplo n.º 15
0
        private void GrowSnakeInSize(Vector2D trailingVector)
        {
            var snakeBodyParts = snakeBody.BodyParts;
            var tail           = snakeBodyParts[snakeBodyParts.Count - 1].DrawArea.TopLeft;
            var newBodyPart    = new FilledRect(CalculateTrailDrawArea(trailingVector, tail),
                                                menu.gameColors[2])
            {
                RenderLayer = 3
            };

            snakeBodyParts.Add(newBodyPart);
            window.Title = "Snake - Length: " + snakeBodyParts.Count;
        }
Ejemplo n.º 16
0
 private void SetupPlayArea()
 {
     window.Title           = "Snake - Let's go";
     window.BackgroundColor = menu.gameColors[0];
     rectangleBorder        = new FilledRect(Rectangle.One, menu.gameColors[1])
     {
         RenderLayer = 0
     };
     rectangleField = new FilledRect(CalculateBackgroundDrawArea(), menu.gameColors[0])
     {
         RenderLayer = 1
     };
 }
Ejemplo n.º 17
0
        public void RotateAdvancesAngleCorrectly()
        {
            var rect = new FilledRect(new Rectangle(ScreenSpace.Current.Viewport.TopLeft, new Size(0.2f)),
                                      Color.Red);

            rect.Rotation = 0;
            rect.Add(new SimplePhysics.Data {
                Gravity = Vector2D.Zero, RotationSpeed = 0.1f
            });
            rect.Start <SimplePhysics.Rotate>();
            AdvanceTimeAndUpdateEntities();
            Assert.Greater(rect.Rotation, 0);
        }
Ejemplo n.º 18
0
        public void RectangleCornersAreCorrect()
        {
            var rect    = new FilledRect(Rectangle.One, Color.White);
            var corners = new List <Vector2D>
            {
                Vector2D.Zero,
                Vector2D.UnitY,
                Vector2D.One,
                Vector2D.UnitX
            };

            AdvanceTimeAndUpdateEntities();
            Assert.AreEqual(corners, rect.Points);
        }
Ejemplo n.º 19
0
        public void ShowRedSquare()
        {
            new FontText(Font.Default, "Pinch screen to show red circle", Rectangle.One);
            var rect    = new FilledRect(new Rectangle(0.1f, 0.1f, 0.1f, 0.1f), Color.Red);
            var trigger = new TouchRotateTrigger();
            var touch   = Resolve <Touch>();

            new Command(() =>
                        //ncrunch: no coverage start
            {
                rect.Center         = touch.GetPosition(0);
                rect.RotationCenter = rect.Center;
                rect.Rotation       = trigger.Angle;
            }).Add(trigger);
            //ncrunch: no coverage end
        }
Ejemplo n.º 20
0
        public void ControlRectanglesWithMouseAndWhenTheyCollideTheyChangeColor()
        {
            var r1 = new FilledRect(new Rectangle(0.2f, 0.2f, 0.1f, 0.1f), Color.Red)
            {
                Rotation = 45
            };
            var r2 = new FilledRect(new Rectangle(0.6f, 0.6f, 0.1f, 0.2f), Color.Red)
            {
                Rotation = 70
            };

            r1.Start <CollidingChangesColor>();
            r2.Start <CollidingChangesColor>();
            new Command(point => r1.Center = point).Add(new MouseButtonTrigger(MouseButton.Left,
                                                                               State.Pressed));
            new Command(point => r2.Center = point).Add(new MouseButtonTrigger(MouseButton.Right,
                                                                               State.Pressed));
        }
Ejemplo n.º 21
0
        public void BounceOffScreenEdge()
        {
            var rect =
                new FilledRect(new Rectangle(ScreenSpace.Current.Viewport.TopLeft, new Size(0.2f)),
                               Color.Red);

            rect.Add(new SimplePhysics.Data
            {
                Gravity  = Vector2D.Zero,
                Velocity = new Vector2D(-0.1f, 0.0f)
            });
            rect.Start <SimplePhysics.Move>();
            rect.Start <SimplePhysics.BounceIfAtScreenEdge>();
            var collided = false;

            rect.Get <SimplePhysics.Data>().Bounced += () => collided = true;
            AdvanceTimeAndUpdateEntities();
            Assert.IsTrue(collided);
            Assert.AreEqual(0.1f, rect.Get <SimplePhysics.Data>().Velocity.X);
        }
Ejemplo n.º 22
0
        private void CreateLineMarkers(float partsWidth)
        {
            if (lineMarkers != null)
            {
                foreach (var lineMarker in lineMarkers)
                {
                    lineMarker.IsActive = false;
                }
            }

            var numberOfLines = colorIntervals.Values.Length;

            lineMarkers = new FilledRect[numberOfLines];
            for (int i = 0; i < numberOfLines; i++)
            {
                lineMarkers[i] = new FilledRect(CreateMarkerDrawAreaForIndex(i, partsWidth), Color.Gray)
                {
                    RenderLayer = RenderLayer + 1
                }
            }
            ;
        }
Ejemplo n.º 23
0
		public void CheckCollisionOnAllSidesWithRotatedRectangles()
		{
			var rect = new FilledRect(new Rectangle(0.4f, 0.4f, 0.2f, 0.2f), Color.White);
			var top = new FilledRect(new Rectangle(0.4f, 0.2f, 0.2f, 0.2f), Color.Yellow)
			{
				Rotation = 45
			};
			var left = new FilledRect(new Rectangle(0.2f, 0.4f, 0.2f, 0.2f), Color.Blue)
			{
				Rotation = 135
			};
			var bottom = new FilledRect(new Rectangle(0.4f, 0.6f, 0.2f, 0.2f), Color.Green)
			{
				Rotation = 225
			};
			var right = new FilledRect(new Rectangle(0.6f, 0.4f, 0.2f, 0.2f), Color.Red)
			{
				Rotation = 315
			};
			Assert.IsTrue(rect.DrawArea.IsColliding(0, top.DrawArea, top.Rotation));
			Assert.IsTrue(rect.DrawArea.IsColliding(0, left.DrawArea, left.Rotation));
			Assert.IsTrue(rect.DrawArea.IsColliding(0, bottom.DrawArea, bottom.Rotation));
			Assert.IsTrue(rect.DrawArea.IsColliding(0, right.DrawArea, right.Rotation));
		}
Ejemplo n.º 24
0
 public void DefaultRectIsRectangleZeroAndWhite()
 {
     var rect = new FilledRect(Rectangle.One, Color.White);
     Assert.AreEqual(Rectangle.One, rect.DrawArea);
     Assert.AreEqual(Color.White, rect.Color);
 }
Ejemplo n.º 25
0
		public void PointsShouldBeAddedCounterClockWise()
		{
			var filledRect = new FilledRect(new Rectangle(0.3f, 0.3f, 0.4f, 0.4f), Color.Blue);
			Assert.IsTrue(filledRect.Points[0].X < filledRect.Points[3].X);
			Assert.IsTrue(filledRect.Points[1].Y > filledRect.Points[0].Y);
			Assert.IsTrue(filledRect.Points[2].X > filledRect.Points[1].X);
			Assert.IsTrue(filledRect.Points[3].Y < filledRect.Points[2].Y);
		}
Ejemplo n.º 26
0
 //ncrunch: no coverage start (only executed when triggering the command)
 private static void ChangeVisibility(FilledRect rect)
 {
     rect.IsVisible = !rect.IsVisible;
 }
Ejemplo n.º 27
0
 public void ToggleRectVisibilityOnClick()
 {
     var rect = new FilledRect(Rectangle.FromCenter(Vector2D.Half, new Size(0.2f)), Color.Orange);
     new Command(() => ChangeVisibility(rect)).Add(new MouseButtonTrigger(MouseButton.Left,
         State.Releasing));
 }
Ejemplo n.º 28
0
        public void PitchToChangeTheScale()
        {
            var rect = new FilledRect(new Rectangle(0.4f, 0.4f, 0.2f, 0.2f), Color.Green);

            new Command(Command.Pinch, point => rect.DrawArea = rect.DrawArea.Reduce((Size)point));
        }
Ejemplo n.º 29
0
		public void RenderRectAndLine()
		{
			var drawArea = new Rectangle(0.3f, 0.3f, 0.4f, 0.4f);
			var rect = new FilledRect(drawArea, Color.Red);
			var line = new Line2D(drawArea, Color.Yellow) { RenderLayer = 1 };
			new Command(Command.Drag, position => rect.Center = line.Center = position);
		}
Ejemplo n.º 30
0
 public void RenderGrowingRotatingRectangle()
 {
     var rect = new FilledRect(new Rectangle(0.3f, 0.3f, 0.1f, 0.1f), Color.Red);
     rect.Start<Grow>();
 }
Ejemplo n.º 31
0
 public void RenderSpinningRectangleAttachedToMouse()
 {
     var rect = new FilledRect(new Rectangle(0.5f, 0.5f, 0.4f, 0.1f), Color.Blue);
     rect.Start<Spin>();
     new Command(point => rect.DrawArea = Rectangle.FromCenter(point, rect.DrawArea.Size)).Add(
         new MouseMovementTrigger());
 }
Ejemplo n.º 32
0
		//ncrunch: no coverage start (only executed when triggering the command)
		private static void ChangeVisibility(FilledRect rect)
		{
			rect.IsVisible = !rect.IsVisible;
		} //ncrunch: no coverage end