コード例 #1
0
        public void ProcessQueued()
        {
            TouchEvent ev;

            while (_queue.TryDequeue(out ev))
            {
                TouchPanel.AddEvent(ev.Id, ev.State, ev.Pos, ev.IsMouse);
            }
        }
コード例 #2
0
ファイル: TouchQueue.cs プロジェクト: chubbyerror/Gibbo2D
 public void ProcessQueued()
 {
     lock (_queue)
     {
         for (var i = 0; i < _queue.Count; i++)
         {
             var ev = _queue[i];
             TouchPanel.AddEvent(ev.Id, ev.State, ev.Pos, ev.IsMouse);
         }
         _queue.Clear();
     }
 }
コード例 #3
0
        public void OnTouchEvent(MotionEvent e)
        {
            if (!Enabled)
            {
                return;
            }

            Vector2 position = Vector2.Zero;

            position.X = e.GetX(e.ActionIndex);
            position.Y = e.GetY(e.ActionIndex);
            UpdateTouchPosition(ref position);
            int id = e.GetPointerId(e.ActionIndex);

            switch (e.ActionMasked)
            {
            // DOWN
            case MotionEventActions.Down:
            case MotionEventActions.PointerDown:
                TouchPanel.AddEvent(id, TouchLocationState.Pressed, position);
                break;

            // UP
            case MotionEventActions.Up:
            case MotionEventActions.PointerUp:
                TouchPanel.AddEvent(id, TouchLocationState.Released, position);
                break;

            // MOVE
            case MotionEventActions.Move:
                for (int i = 0; i < e.PointerCount; i++)
                {
                    id         = e.GetPointerId(i);
                    position.X = e.GetX(i);
                    position.Y = e.GetY(i);
                    UpdateTouchPosition(ref position);
                    TouchPanel.AddEvent(id, TouchLocationState.Moved, position);
                }
                break;

            // CANCEL, OUTSIDE
            case MotionEventActions.Cancel:
            case MotionEventActions.Outside:
                for (int i = 0; i < e.PointerCount; i++)
                {
                    id = e.GetPointerId(i);
                    TouchPanel.AddEvent(id, TouchLocationState.Released, position);
                }
                break;
            }
        }
コード例 #4
0
ファイル: TouchPanel.cs プロジェクト: conankzhang/fez
 internal static void AddEvent(int id, TouchLocationState state, Vector2 position)
 {
     TouchPanel.AddEvent(id, state, position, false);
 }