public IOSInput(IOSGestures gestures, AGS.API.Size virtualResolution, IGameState state, IShouldBlockInput shouldBlockInput, IGameWindow gameWindow) { MousePosition = new MousePosition(0f, 0f, state.Viewport); _shouldBlockInput = shouldBlockInput; _gameWindow = gameWindow; _state = state; API.MousePosition.VirtualResolution = virtualResolution; updateWindowSizeFunctions(); MouseDown = new AGSEvent <AGS.API.MouseButtonEventArgs>(); MouseUp = new AGSEvent <AGS.API.MouseButtonEventArgs>(); MouseMove = new AGSEvent <MousePositionEventArgs>(); KeyDown = new AGSEvent <KeyboardEventArgs>(); KeyUp = new AGSEvent <KeyboardEventArgs>(); IOSGameWindow.Instance.View.OnInsertText += onInsertText; IOSGameWindow.Instance.View.OnDeleteBackward += onDeleteBackwards; gestures.OnUserDrag += async(sender, e) => { if (isInputBlocked()) { return; } DateTime now = DateTime.Now; _lastDrag = now; IsTouchDrag = true; setMousePosition(e); await MouseMove.InvokeAsync(new MousePositionEventArgs(MousePosition)); await Task.Delay(300); if (_lastDrag <= now) { IsTouchDrag = false; } }; gestures.OnUserSingleTap += async(sender, e) => { if (isInputBlocked()) { return; } setMousePosition(e); LeftMouseButtonDown = true; await MouseDown.InvokeAsync(new MouseButtonEventArgs(null, MouseButton.Left, MousePosition)); await Task.Delay(250); await MouseUp.InvokeAsync(new MouseButtonEventArgs(null, MouseButton.Left, MousePosition)); LeftMouseButtonDown = false; }; }
public IOSInput(IOSGestures gestures, IShouldBlockInput shouldBlockInput, ICoordinates coordinates, IAGSHitTest hitTest) { _gestures = gestures; _hitTest = hitTest; _coordinates = coordinates; MousePosition = new MousePosition(0f, 0f, _coordinates); _shouldBlockInput = shouldBlockInput; MouseDown = new AGSEvent <AGS.API.MouseButtonEventArgs>(); MouseUp = new AGSEvent <AGS.API.MouseButtonEventArgs>(); MouseMove = new AGSEvent <MousePositionEventArgs>(); KeyDown = new AGSEvent <KeyboardEventArgs>(); KeyUp = new AGSEvent <KeyboardEventArgs>(); IOSGameWindow.Instance.View.OnInsertText += onInsertText; IOSGameWindow.Instance.View.OnDeleteBackward += onDeleteBackwards; gestures.OnUserDrag += async(sender, e) => { if (isInputBlocked()) { return; } DateTime now = DateTime.Now; _lastDrag = now; IsTouchDrag = true; setMousePosition(e); await MouseMove.InvokeAsync(new MousePositionEventArgs(MousePosition)); await Task.Delay(300); if (_lastDrag <= now) { IsTouchDrag = false; } }; gestures.OnUserSingleTap += async(sender, e) => { if (isInputBlocked()) { return; } setMousePosition(e); LeftMouseButtonDown = true; await MouseDown.InvokeAsync(new MouseButtonEventArgs(_hitTest.ObjectAtMousePosition, MouseButton.Left, MousePosition)); await Task.Delay(250); await MouseUp.InvokeAsync(new MouseButtonEventArgs(_hitTest.ObjectAtMousePosition, MouseButton.Left, MousePosition)); LeftMouseButtonDown = false; }; }