private void SketchInputManager_PointerMoved(object sender, SketchPointer e) { if (OnSketchPointerList.Contains(e)) { if (!StartRegion.IsOverlapPoint(e.Point)) { OnSketchPointerList.Remove(e); if (OnSketchPointerList.Count == 0) { Pressed = false; OnReleased(); } } } else { if (e.HitLayer == Level && StartRegion.IsOverlapPoint(e.Point)) { OnSketchPointerList.Add(e); if (OnSketchPointerList.Count == 1) { Pressed = true; OnPressed(); } } } }
private void SketchInputManager_PointerPressed(object sender, SketchPointer e) { if (e.HitLayer == Level && StartRegion.IsOverlapPoint(e.Point)) { OnSketchPointerList.Add(e); if (OnSketchPointerList.Count == 1) { Pressed = true; OnPressed(); } } }
private void SketchInputManager_PointerPressed(object sender, SketchPointer e) { if (OnSketchPointer != null) { return; } if (StartRegion.IsOverlapPoint(e.Point) && e.HitLayer == Level) { if (e.State == Input.PointerState.Pressed) { OnSketchPointer = e; _StartPos = OnSketchPointer.Point; Delta = new Vector2(0, 0); Pressed = true; OnJoystickPressed(); } } }
private void handleSkiaTouchAction(SkiaTouch skiaTouch, TouchMotionAction action) { if (skiaTouch.HeightLevel != InputHeightLevel) { return; } ITouch touch = skiaTouch.Touch; CanvasInfoProvider canvasInfoProvider = SkiaBehaviourEngine.CanvasInfoProvider as CanvasInfoProvider; if (action == TouchMotionAction.Down) { if (OnSkiaTouch == null && StartRegion.IsOverlapPoint(canvasInfoProvider.DeviceToCanvasPoint(touch.Position.ToSKPoint()))) { OnSkiaTouch = skiaTouch; Distance = 0; Direction = 0; startPos = touch.Position.ToSKPoint(); OnJoystickPressed(); } } else if (action == TouchMotionAction.Up) { if (OnSkiaTouch == skiaTouch) { Distance = 0; Direction = 0; OnSkiaTouch = null; OnJoystickUp(); } } else if (action == TouchMotionAction.Move) { if (OnSkiaTouch == skiaTouch) { SKPoint currentPos = touch.Position.ToSKPoint(); float distance = (currentPos - startPos).Magnitude(); float degree = (float)(Math.Atan2((currentPos - startPos).Y, (currentPos - startPos).X) * (180 / Math.PI)); this.Distance = distance; this.Direction = degree; OnJoystickMove(); } } }