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)); }
public void DefaultRectIsRectangleZeroAndWhite() { var rect = new FilledRect(Rectangle.One, Color.White); Assert.AreEqual(Rectangle.One, rect.DrawArea); Assert.AreEqual(Color.White, rect.Color); }
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]; } }
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)); }
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; } }
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()); }
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); }
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)); }
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); }
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)); }
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>(); }
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 }
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 }
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); }
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; }
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 }; }
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); }
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); }
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 }
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)); }
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); }
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 } } ; }
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)); }
public void DefaultRectIsRectangleZeroAndWhite() { var rect = new FilledRect(Rectangle.One, Color.White); Assert.AreEqual(Rectangle.One, rect.DrawArea); Assert.AreEqual(Color.White, rect.Color); }
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); }
//ncrunch: no coverage start (only executed when triggering the command) private static void ChangeVisibility(FilledRect rect) { rect.IsVisible = !rect.IsVisible; }
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)); }
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)); }
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); }
public void RenderGrowingRotatingRectangle() { var rect = new FilledRect(new Rectangle(0.3f, 0.3f, 0.1f, 0.1f), Color.Red); rect.Start<Grow>(); }
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()); }
//ncrunch: no coverage start (only executed when triggering the command) private static void ChangeVisibility(FilledRect rect) { rect.IsVisible = !rect.IsVisible; } //ncrunch: no coverage end