예제 #1
0
		public void PressKeyToShowCircle()
		{
			new FontText(Font.Default, "Press A on Keyboard to show red circle", Rectangle.One);
			var ellipse = new Ellipse(new Rectangle(0.1f, 0.1f, 0.1f, 0.1f), Color.Red);
			new Command(() => ellipse.Center = Vector2D.Half).Add(new KeyTrigger(Key.A, State.Pressed));
			new Command(() => ellipse.Center = Vector2D.Zero).Add(new KeyTrigger(Key.A, State.Released));
		}
예제 #2
0
		public void ShowRedCircleOnFlick()
		{
			new FontText(Font.Default, "Flick screen to show red circle", Rectangle.One);
			var ellipse = new Ellipse(new Rectangle(0.1f, 0.1f, 0.1f, 0.1f), Color.Red);
			new Command(() => ellipse.Center = Vector2D.Half).Add(new TouchFlickTrigger());
			new Command(() => ellipse.Center = Vector2D.Zero).Add(new TouchPressTrigger(State.Released));
		}
예제 #3
0
		public void PressingGamePadButtonShowsCircle()
		{
			new FontText(Font.Default, "Press X on GamePad to show red circle", Rectangle.One);
			var ellipse = new Ellipse(new Rectangle(0.1f, 0.1f, 0.1f, 0.1f), Color.Red);
			new Command(() => ellipse.Center = Vector2D.Half).Add(new GamePadButtonTrigger(
				GamePadButton.X, State.Pressed));
			new Command(() => ellipse.Center = Vector2D.Zero).Add(new GamePadButtonTrigger(
				GamePadButton.X, State.Released));
		}
		public void MovingSticksTranslatesCircle()
		{
			var ellipseLeft = new Ellipse(new Rectangle(0.4f, 0.5f, 0.1f, 0.1f), Color.Green);
			var ellipseRight = new Ellipse(new Rectangle(0.6f, 0.5f, 0.1f, 0.1f), Color.Blue);
			new Command(pos => ellipseLeft.Center = pos * 0.2f + Vector2D.Half).Add(
				new GamePadAnalogTrigger(GamePadAnalog.LeftThumbStick));
			new Command(pos => ellipseRight.Center = pos * 0.2f + Vector2D.Half).Add(
				new GamePadAnalogTrigger(GamePadAnalog.RightThumbStick));
		}
예제 #5
0
 public void ChangingMenuRenderLayerChangesRenderLayerOfControls()
 {
     menu.AddMenuOption(() => { });
     var ellipse = new Ellipse(Rectangle.HalfCentered, Color.Red);
     menu.Add(ellipse);
     menu.RenderLayer = 30;
     Assert.AreEqual(30, menu.RenderLayer);
     Assert.AreEqual(30, menu.Buttons[0].RenderLayer);
     Assert.AreEqual(30, ellipse.RenderLayer);
 }
예제 #6
0
 public void RenderFallingCircle()
 {
     var ellipse = new Ellipse(Vector2D.Half, 0.1f, 0.1f, Color.Blue);
     ellipse.Add(new SimplePhysics.Data
     {
         Velocity = new Vector2D(0.1f, -0.1f),
         Gravity = new Vector2D(0.0f, 0.1f)
     });
     ellipse.Start<SimplePhysics.Move>();
 }
예제 #7
0
 public void ShowRedCircleOnPinch()
 {
     new FontText(Font.Default, "Pinch screen to show red circle", Rectangle.One);
     var ellipse = new Ellipse(new Rectangle(0.1f, 0.1f, 0.1f, 0.1f), Color.Red);
     var trigger = new TouchPinchTrigger();
     var touch = Resolve<Touch>();
     new Command(() =>
     //ncrunch: no coverage start
     {
         ellipse.Center = touch.GetPosition(0);
         ellipse.Size = new Size(trigger.Distance * 0.5f);
     }).Add(trigger);
     //ncrunch: no coverage end
 }
예제 #8
0
		public void SetUp()
		{
			ellipse = new Ellipse(Vector2D.Half, 0.2f, 0.1f, Color.Blue);
			ellipse.Add(new Name("name"));
			writer = new EntityWriter(ellipse);
			drawAreaBox = writer.scene.Controls[1] as TextBox;
			colorRSlider = writer.scene.Controls[3] as Slider;
			colorGSlider = writer.scene.Controls[5] as Slider;
			colorBSlider = writer.scene.Controls[7] as Slider;
			colorASlider = writer.scene.Controls[9] as Slider;
			nameBox = writer.scene.Controls[11] as TextBox;
			rotationBox = writer.scene.Controls[13] as TextBox;
			rotationCenterBox = writer.scene.Controls[15] as TextBox;
		}
예제 #9
0
 private static void AddCirclesAndInputCommands(Vector2D[] centers, Size size)
 {
     var up = new Ellipse(centers[0], size.Width, size.Height, Color.Orange);
     var down = new Ellipse(centers[1], size.Width, size.Height, Color.Orange);
     var left = new Ellipse(centers[2], size.Width, size.Height, Color.Orange);
     var right = new Ellipse(centers[3], size.Width, size.Height, Color.Orange);
     new Command(() => up.IsVisible = true).Add(new KeyTrigger(Key.CursorUp, State.Pressed));
     new Command(() => up.IsVisible = false).Add(new KeyTrigger(Key.CursorUp, State.Released));
     new Command(() => down.IsVisible = true).Add(new KeyTrigger(Key.CursorDown, State.Pressed));
     new Command(() => down.IsVisible = false).Add(new KeyTrigger(Key.CursorDown, State.Released));
     new Command(() => left.IsVisible = true).Add(new KeyTrigger(Key.CursorLeft, State.Pressed));
     new Command(() => left.IsVisible = false).Add(new KeyTrigger(Key.CursorLeft, State.Released));
     new Command(() => right.IsVisible = true).Add(new KeyTrigger(Key.CursorRight, State.Pressed));
     new Command(() => right.IsVisible = false).Add(new KeyTrigger(Key.CursorRight, State.Released));
 }
예제 #10
0
			private void InitializeVariables(Ellipse entity)
			{
				var rotation = entity.Rotation;
				rotationSin = MathExtensions.Sin(rotation);
				rotationCos = MathExtensions.Cos(rotation);
				rotationCenter = entity.RotationCenter;
				center = entity.DrawArea.Center;
				if (center != rotationCenter)
					center = center.RotateAround(rotationCenter, rotationSin, rotationCos);
				radiusX = entity.RadiusX;
				radiusY = entity.RadiusY;
				float maxRadius = MathExtensions.Max(radiusX, radiusY);
				pointsCount = GetPointsCount(maxRadius);
				theta = -360.0f / (pointsCount - 1);
			}
		public void PressGamePadButtonsToShowCircles()
		{
			var circleA = new Ellipse(new Rectangle(0.1f, 0.1f, 0.1f, 0.1f), Color.Green);
			var circleB = new Ellipse(new Rectangle(0.1f, 0.1f, 0.1f, 0.1f), Color.Red);
			var circleX = new Ellipse(new Rectangle(0.1f, 0.1f, 0.1f, 0.1f), Color.Blue);
			var circleY = new Ellipse(new Rectangle(0.1f, 0.1f, 0.1f, 0.1f), Color.Yellow);
			new Command(() => circleA.Center = new Vector2D(0.5f, 0.75f)).Add(
				new GamePadButtonTrigger(GamePadButton.A, State.Pressed));
			new Command(() => circleA.Center = Vector2D.Zero).Add(new GamePadButtonTrigger(
				GamePadButton.A, State.Released));
			new Command(() => circleB.Center = new Vector2D(0.75f, 0.5f)).Add(
				new GamePadButtonTrigger(GamePadButton.B, State.Pressed));
			new Command(() => circleB.Center = Vector2D.Zero).Add(new GamePadButtonTrigger(
				GamePadButton.B, State.Released));
			new Command(() => circleX.Center = new Vector2D(0.25f, 0.5f)).Add(
				new GamePadButtonTrigger(GamePadButton.X, State.Pressed));
			new Command(() => circleX.Center = Vector2D.Zero).Add(new GamePadButtonTrigger(
				GamePadButton.X, State.Released));
			new Command(() => circleY.Center = new Vector2D(0.5f, 0.25f)).Add(
				new GamePadButtonTrigger(GamePadButton.Y, State.Pressed));
			new Command(() => circleY.Center = Vector2D.Zero).Add(new GamePadButtonTrigger(
				GamePadButton.Y, State.Released));
		}
예제 #12
0
 public void SetUp()
 {
     selector = new EntitySelector();
     ellipse = new Ellipse(Vector2D.Half, 0.1f, 0.1f, Color.Blue);
     mouse = Resolve<Mouse>() as MockMouse;
 }
		public void ShowRedCircleOnTouchWithMovement()
		{
			var ellipse = new Ellipse(new Rectangle(-0.1f, -0.1f, 0.1f, 0.1f), Color.Red);
			new Command(pos => ellipse.Center = pos).Add(new TouchPositionTrigger(State.Pressed));
		}
		public void MoveMouseToUpdatePositionOfCircle()
		{
			var ellipse = new Ellipse(new Rectangle(-0.1f, -0.1f, 0.1f, 0.1f), Color.Red);
			new Command(pos => ellipse.Center = pos).Add(new MouseMovementTrigger());
		}
예제 #15
0
 public void RenderMovingCircleUsingExtension()
 {
     var ellipse = new Ellipse(Vector2D.Half, 0.1f, 0.1f, Color.Blue);
     ellipse.StartMoving(new Vector2D(0.1f, -0.1f));
 }
예제 #16
0
 public void ShowRedCircleOnTouchAtTouchPosition()
 {
     new FontText(Font.Default, "Touch screen to show red circle", Rectangle.One);
     var ellipse = new Ellipse(new Rectangle(0.1f, 0.1f, 0.1f, 0.1f), Color.Red);
     new Command(() => TranslateOnTouch(ellipse)).Add(new TouchPressTrigger(State.Pressed));
 }
예제 #17
0
 public void ClickAndHoldToShowRedEllipseAtMousePosition()
 {
     var ellipse = new Ellipse(new Rectangle(-0.1f, -0.1f, 0.1f, 0.1f), Color.Red);
     new Command(position => ellipse.Center = position).Add(new MouseButtonTrigger(State.Pressed));
 }
예제 #18
0
 public void MenuRenderLayerIsAppliedToControls()
 {
     menu.AddMenuOption(() => { });
     var ellipse = new Ellipse(Rectangle.HalfCentered, Color.Red);
     menu.Add(ellipse);
     Assert.AreEqual(BaseRenderLayer, menu.RenderLayer);
     Assert.AreEqual(BaseRenderLayer, menu.Buttons[0].RenderLayer);
     Assert.AreEqual(BaseRenderLayer, ellipse.RenderLayer);
 }
예제 #19
0
		public void UseMoveDirectlyCommandToMoveCircleAround()
		{
			var circle = new Ellipse(Vector2D.Half, 0.25f, 0.25f, Color.Orange);
			new Command(Command.MoveDirectly, position =>
				circle.DrawArea = circle.DrawArea.Move(position / 24.0f)); //ncrunch: no coverage
		}
예제 #20
0
		public void ZoomCircleWithPageUpPageDown()
		{
			var circle = new Ellipse(Vector2D.Half, 0.25f, 0.25f, Color.Orange);
			new Command(Command.Zoom, zoom =>
				circle.DrawArea = circle.DrawArea.Increase(new Size(zoom / 24.0f))); //ncrunch: no coverage
		}
예제 #21
0
 public void ResizeEllipseByZoomTrigger()
 {
     var ellipse = new Ellipse(Vector2D.Half, 0.1f, 0.1f, Color.Red);
     new Command(zoomAmount => { ellipse.Radius += zoomAmount * 0.02f; }).Add(
         new MouseZoomTrigger());
 }
		public void ShowRedCircleOnMouseClickWithMovement()
		{
			var ellipse = new Ellipse(new Rectangle(-0.1f, -0.1f, 0.1f, 0.1f), Color.Red);
			new Command(pos => ellipse.Center = pos).Add(new MousePositionTrigger(MouseButton.Left,
				State.Pressed));
		}