Exemplo n.º 1
0
 override public void Sync()
 {
     timerAutoRepeat.Clear();
     // do not set property Position as it will trigger events
     position        = StickValue();
     digitalPosition = CalcDigitalPosition(position);
 }
Exemplo n.º 2
0
 override public void Reset()
 {
     // do not set property Position as it will trigger events
     position        = Vector2.Zero;
     digitalPosition = DigitalPosition.centered;
     timerAutoRepeat.Clear();
 }
Exemplo n.º 3
0
        protected DigitalPosition CalcDigitalPosition(Vector2 value)
        {
            DigitalPosition digpos = DigitalPosition.centered;

            if (value.X < -valueEdge)
            {
                digpos = digpos | DigitalPosition.Left;
            }
            else if (value.X > valueEdge)
            {
                digpos = digpos | DigitalPosition.Right;
            }
            if (value.Y < -valueEdge)
            {
                digpos = digpos | DigitalPosition.Down;
            }
            else if (value.Y > valueEdge)
            {
                digpos = digpos | DigitalPosition.Up;
            }
            return(digpos);
        }
Exemplo n.º 4
0
        protected void FireReleaseEvent(DigitalPosition digpos)
        {
            switch (digpos)
            {
            case DigitalPosition.centered:
                break;

            case DigitalPosition.Up:
                if (UpReleasePress != null)
                {
                    UpReleasePress(this, new EventArgs());
                }
                break;

            case DigitalPosition.UpRight:
                if (UpRightReleasePress != null)
                {
                    UpRightReleasePress(this, new EventArgs());
                }
                break;

            case DigitalPosition.Right:
                if (RightReleasePress != null)
                {
                    RightReleasePress(this, new EventArgs());
                }
                break;

            case DigitalPosition.DownRight:
                if (DownRightReleasePress != null)
                {
                    DownRightReleasePress(this, new EventArgs());
                }
                break;

            case DigitalPosition.Down:
                if (DownReleasePress != null)
                {
                    DownReleasePress(this, new EventArgs());
                }
                break;

            case DigitalPosition.DownLeft:
                if (DownLeftReleasePress != null)
                {
                    DownLeftReleasePress(this, new EventArgs());
                }
                break;

            case DigitalPosition.Left:
                if (LeftReleasePress != null)
                {
                    LeftReleasePress(this, new EventArgs());
                }
                break;

            case DigitalPosition.UpLeft:
                if (UpLeftReleasePress != null)
                {
                    UpLeftReleasePress(this, new EventArgs());
                }
                break;
            }
        }