示例#1
0
 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();
             }
         }
     }
 }
示例#2
0
 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();
         }
     }
 }
示例#3
0
 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();
         }
     }
 }
示例#4
0
        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();
                }
            }
        }