public static void Update(float TimeMili)
        {
            System.Drawing.Point CenterScreen = new System.Drawing.Point(Global.Settings.Width / 2, Global.Settings.Height / 2);
            System.Drawing.Point CenterForm = Program.form.PointToScreen(CenterScreen);

            PrePosition = MousePosition;
            System.Drawing.Point lpPoint = Program.form.PointToClient(Cursor.Position);
            MousePosition = new Vector2(lpPoint.X, lpPoint.Y);

            MouseDelta = new Vector2(MousePosition.X - CenterScreen.X, MousePosition.Y - CenterScreen.Y);

            if (CursorToCenter)
            {
                Cursor.Position = CenterForm;// new System.Drawing.Point(100, 100);
                //PrePosition = new Vector2(CenterForm.X, CenterForm.Y);
            }

            keyboardState = KeyboardState.GetCurrentState();
            /*
            if (keyboardState.PressedKeys.Count > 0)
            {
                foreach (Keys pressedKey in keyboardState.PressedKeys)
                {
                    Console.Write(pressedKey + " ");
                }
                Console.WriteLine();
                return;
            }*/

            PreLeftMouse = LeftMouse;
            PreMidleMouse = MidleMouse;
            PreRightMouse = RightMouse;
            PreMouseWheel = MouseWheel;

            LeftMouse = LB;
            RightMouse = RB;
            MidleMouse = MB;
            MouseWheel += WD;
        }
 /// <summary>
 /// Копирует текущее состояние клавиш.
 /// </summary>
 /// <returns>Копия текущего состояния клавиатуры.</returns>
 public static KeyboardState GetCurrentState()
 {
     KeyboardState ret = new KeyboardState();
     ret.PressedKeys = new List<Keys>(States);
     return ret;
 }
예제 #3
0
파일: Input.cs 프로젝트: ericrrichards/fps
        public void Update()
        {
            //Log.Info("updating");
            while (true) {
                try {
                    _keyboard.Poll();
                    _keyState = _keyboard.GetCurrentState();

                    if (Result.Last.IsSuccess) {
                        break;
                    }

                } catch (DirectInputException ex) {
                    Console.WriteLine(ex.Message);
                    _result = ex.ResultCode;
                    if (_result != ResultCode.InputLost && _result != ResultCode.NotAcquired) {
                        return;
                    }
                    if ((_result = (_keyboard.Acquire())).IsFailure) {
                        Log.Info("Failed to aquire keyboard");
                        //Log.Info(_result);
                        return;
                    }
                }

            }
            while (true) {
                try {

                    _mouse.Poll();
                    _mouseState = _mouse.GetCurrentState();
                    break;

                } catch (DirectInputException ex) {
                    _result = ex.ResultCode;
                    if (_result != ResultCode.InputLost && _result != ResultCode.NotAcquired) {
                        return;
                    }
                    if (((_result = _mouse.Acquire())).IsFailure) {
                        Log.Info("Failed to aquire mouse");
                        Log.Info(_result);
                        return;
                    }
                }
            }
            _position = Cursor.Position;
            if (!_window.IsDisposed) {
                _position = _window.PointToClient(_position);
            }
            _pressStamp++;
        }