public static void AddCameraZoomController(AbstractCameraTracker camera, ClickController clickController) { if (TouchScreenEnabled) { var pinchGesture = new SmartGesture(GestureType.Pinch) { GestureEvent = gesture => { var dist = Vector2.Distance(gesture.Position, gesture.Position2); var aOld = gesture.Position - gesture.Delta; var bOld = gesture.Position2 - gesture.Delta2; var distOld = Vector2.Distance(aOld, bOld); var scale = (distOld - dist) / 500f; camera.Zoom(scale); } }; clickController.TouchScreenControl.AddSmartGesture(pinchGesture); } if (KeyboardMouseEnabled) { clickController.MouseControl.OnScrollEvent += zoomBy => { camera.Zoom((float)zoomBy / 1000); }; } }
protected AbstractRpgGameMode(EventHandler clickEvent) { _backButtonClickEvent = clickEvent; GuiManager = new GuiManager(); var backButton = new BackButtonGuiLayer { ClickEvent = clickEvent }; GuiManager.AddGuiLayer(backButton); UpdateList = new List <IUpdate> { GuiManager }; ClickController = new ClickController { MouseControl = { OnPressedEvent = (state, mouseState) => { if (!GuiManager.Interact(mouseState.Position)) { ClickEvent?.Invoke(mouseState.Position); } } } }; var moveGesture = new SmartGesture(GestureType.Tap) { GestureEvent = gesture => { var position = gesture.Position.ToPoint(); if (!GuiManager.Interact(position)) { ClickEvent?.Invoke(position); } } }; ClickController.TouchScreenControl.AddSmartGesture(moveGesture); UpdateList.Add(ClickController); }
public static void AddCameraMovementController(AbstractCameraTracker camera, ClickController clickController) { if (TouchScreenEnabled) { var dragGesture = new SmartGesture(GestureType.FreeDrag) { GestureEvent = gesture => { camera.Camera.Position -= gesture.Delta / camera.CameraZoom; } }; clickController.AddSmartGesture(dragGesture); var doubleTap = new SmartGesture(GestureType.DoubleTap) { GestureEvent = gesture => { camera.ReFocus(); } }; clickController.AddSmartGesture(doubleTap); } }
protected MenuScreen(ViewportAdapter viewPort, IServiceProvider serviceProvider) { _camera = new Camera2D(viewPort) { Zoom = 1.0f }; _serviceProvider = serviceProvider; MenuItems = new List <MenuItem>(); _clickController = new ClickController(); _clickController.MouseControl.OnPressedEvent += (state, mouseState) => { CheckClick(mouseState.Position.ToVector2()); }; var moveGesture = new SmartGesture(GestureType.Tap); moveGesture.GestureEvent += gesture => { CheckClick(gesture.Position); }; _clickController.TouchScreenControl.AddSmartGesture(moveGesture); var upButtons = new List <IButtonAble> { new DirectionGamePadButton(Buttons.DPadUp), new KeyButton(Keys.W), new KeyButton(Keys.Up) }; var downButtons = new List <IButtonAble> { new DirectionGamePadButton(Buttons.DPadDown), new KeyButton(Keys.S), new KeyButton(Keys.Down) }; var actionButtons = new List <IButtonAble> { new GamePadButton(Buttons.A), new KeyButton(Keys.E) }; var upAction = new CompositeSmartButton(upButtons) { OnButtonJustPressed = (sender, args) => { Selected--; } }; var downAction = new CompositeSmartButton(downButtons) { OnButtonJustPressed = (sender, args) => { Selected++; } }; var action = new CompositeSmartButton(actionButtons) { OnButtonReleased = (sender, args) => { MenuItems[Selected].Action.Invoke(); } }; _controller = new SmartController(); _controller.AddButton(upAction); _controller.AddButton(downAction); _controller.AddButton(action); }
public void AddSmartGesture(SmartGesture smartGesture) { TouchScreenControl.AddSmartGesture(smartGesture); }