public void Update() { this.Old_keyboardState = this.keyboardState; this.keyboardState = Keyboard.GetState(); this.Old_pressedKeys = pressedKeys_Constant; this.pressedKeys_Constant = keyboardState.GetPressedKeys(); List<Keys> tempkeys = new List<Keys>(); List<string> stringtempkeys = new List<string>(); List<string> stringtempkeys2 = new List<string>(); for (int i = 0; i < pressedKeys_Constant.Length; i++) { var stringkey = this.GetEnumName(this.pressedKeys_Constant[i]); var key = pressedKeys_Constant[i]; stringtempkeys2.Add(stringkey); if (!this.Old_pressedKeys.Contains(key)) { stringtempkeys.Add(stringkey); tempkeys.Add(key); } } this.PressedKeys = tempkeys.ToArray(); this.StringKeys = stringtempkeys.ToArray(); this.StringKeys_Constant = stringtempkeys2.ToArray(); if (this.pressedKeys_Constant.Contains<Keys>(Keys.CapsLock)) { if (this.CapsLock) { this.CapsLock = false; } else { this.CapsLock = true; } } FireDelegate(StringKeys_Constant.Length > 0, this.KeyboardKeys_Contant); FireDelegate(StringKeys.Length > 0, this.KeyboardKeys_Once); this.Old_MouseState = this.MouseState; this.MouseState = Mouse.GetState(); this.Old_MouseScroll_Value = this.New_MouseScroll_Value; this.New_MouseScroll_Value = this.MouseState.ScrollWheelValue; this.MouseNormal = new Vector2((float)this.MouseState.X, (float)this.MouseState.Y); this.MouseScrollValueUP = Old_MouseScroll_Value < New_MouseScroll_Value; this.MouseScrollValueDown = Old_MouseScroll_Value > New_MouseScroll_Value; this.MouseScrollValueConstant = Old_MouseScroll_Value == New_MouseScroll_Value; FireDelegate(MouseScrollValueConstant == false, MouseWheel); this.X = (int)MouseNormal.X; this.Y = (int)MouseNormal.Y; this.mouseLeftClicked_Single = (this.MouseState.LeftButton == ButtonState.Pressed) && (this.Old_MouseState.LeftButton != this.MouseState.LeftButton); this.mouseMiddleClicked_Single = (this.MouseState.MiddleButton == ButtonState.Pressed) && (this.Old_MouseState.MiddleButton != this.MouseState.MiddleButton); this.mouseRightClicked_Single = (this.MouseState.RightButton == ButtonState.Pressed) && (this.Old_MouseState.RightButton != this.MouseState.RightButton); this.mouseButton1Clicked_Single = (this.MouseState.XButton1 == ButtonState.Pressed) && (this.Old_MouseState.XButton1 != this.MouseState.XButton1); this.mouseButton2Click_Single = (this.MouseState.XButton2 == ButtonState.Pressed) && (this.Old_MouseState.XButton2 != this.MouseState.XButton2); this.mouseLeftClicked_Continuous = (this.MouseState.LeftButton == ButtonState.Pressed); this.mouseMiddleClicked_Continuous = (this.MouseState.MiddleButton == ButtonState.Pressed); this.mouseRightClicked_Continuous = (this.MouseState.RightButton == ButtonState.Pressed); this.mouseButton1Clicked_Continuous = (this.MouseState.XButton1 == ButtonState.Pressed); this.mouseButton2Click_Continuous = (this.MouseState.XButton2 == ButtonState.Pressed); #region mousebuttomsDown this.Old_MouseButtonsDown_Constant = this.MouseButtonsDown_Constant; this.MouseButtonsDown_Constant = Mouse_Buttoms.None; this.MouseButtonsDown = Mouse_Buttoms.None; CheckButtom(this.MouseState.RightButton, ButtonState.Pressed, Mouse_Buttoms.Right, this.MouseButtonsDown_Constant, this.Old_MouseButtonsDown_Constant, this.MouseButtonsDown, out MouseButtonsDown_Constant, out MouseButtonsDown); CheckButtom(this.MouseState.LeftButton, ButtonState.Pressed, Mouse_Buttoms.Left, this.MouseButtonsDown_Constant, this.Old_MouseButtonsDown_Constant, this.MouseButtonsDown, out MouseButtonsDown_Constant, out MouseButtonsDown); CheckButtom(this.MouseState.MiddleButton, ButtonState.Pressed, Mouse_Buttoms.Middle, this.MouseButtonsDown_Constant, this.Old_MouseButtonsDown_Constant, this.MouseButtonsDown, out MouseButtonsDown_Constant, out MouseButtonsDown); CheckButtom(this.MouseState.XButton1, ButtonState.Pressed, Mouse_Buttoms.XButton1, this.MouseButtonsDown_Constant, this.Old_MouseButtonsDown_Constant, this.MouseButtonsDown, out MouseButtonsDown_Constant, out MouseButtonsDown); CheckButtom(this.MouseState.XButton2, ButtonState.Pressed, Mouse_Buttoms.XButton2, this.MouseButtonsDown_Constant, this.Old_MouseButtonsDown_Constant, this.MouseButtonsDown, out MouseButtonsDown_Constant, out MouseButtonsDown); FireDelegate(MouseButtonsDown_Constant != Mouse_Buttoms.None, this.MouseDown_Constant); FireDelegate(MouseButtonsDown != Mouse_Buttoms.None, this.MouseDown); #endregion #region mousebuttomsUp this.Old_MouseButtonsUp_Constant = this.MouseButtonsUp_Constant; this.MouseButtonsUp_Constant = Mouse_Buttoms.None; this.MouseButtonsUp = Mouse_Buttoms.None; CheckButtom(this.MouseState.RightButton, ButtonState.Released, Mouse_Buttoms.Right, this.MouseButtonsUp_Constant, this.Old_MouseButtonsUp_Constant, this.MouseButtonsUp, out MouseButtonsUp_Constant, out this.MouseButtonsUp); CheckButtom(this.MouseState.LeftButton, ButtonState.Released, Mouse_Buttoms.Left, this.MouseButtonsUp_Constant, this.Old_MouseButtonsUp_Constant, this.MouseButtonsUp, out MouseButtonsUp_Constant, out this.MouseButtonsUp); CheckButtom(this.MouseState.MiddleButton, ButtonState.Released, Mouse_Buttoms.Middle, this.MouseButtonsUp_Constant, this.Old_MouseButtonsUp_Constant, this.MouseButtonsUp, out MouseButtonsUp_Constant, out this.MouseButtonsUp); CheckButtom(this.MouseState.XButton1, ButtonState.Released, Mouse_Buttoms.XButton1, this.MouseButtonsUp_Constant, this.Old_MouseButtonsUp_Constant, this.MouseButtonsUp, out MouseButtonsUp_Constant, out this.MouseButtonsUp); CheckButtom(this.MouseState.XButton2, ButtonState.Released, Mouse_Buttoms.XButton2, this.MouseButtonsUp_Constant, this.Old_MouseButtonsUp_Constant, this.MouseButtonsUp, out MouseButtonsUp_Constant, out this.MouseButtonsUp); FireDelegate(MouseButtonsUp_Constant != Mouse_Buttoms.None, this.MouseUp_Constant); FireDelegate(MouseButtonsUp != Mouse_Buttoms.None, this.MouseUp); #endregion if (Old_MouseNormal != MouseNormal) { if (this.MouseMouse != null) { this.MouseMouse(this); } Old_MouseNormal = MouseNormal; } if (this.ConstantCall != null) { this.ConstantCall(this); } }
private void CheckButtom(ButtonState buttonState, ButtonState buttostatetockeck, Mouse_Buttoms buttomtockeck, Mouse_Buttoms constant, Mouse_Buttoms oldconstant, Mouse_Buttoms once, out Mouse_Buttoms Constant, out Mouse_Buttoms Once) { if (buttonState == buttostatetockeck) { //constant if (constant == Mouse_Buttoms.None) { constant = buttomtockeck; } else { constant |= buttomtockeck; } //once if (!oldconstant.HasFlag(buttomtockeck)) { if (once == Mouse_Buttoms.None) { once = buttomtockeck; } else { once |= buttomtockeck; } } } Once = once; Constant = constant; }
public InputHelper( ) { this.MouseButtonsDown_Constant = new Mouse_Buttoms(); this.MouseButtonsDown = new Mouse_Buttoms(); this.MouseButtonsUp_Constant = new Mouse_Buttoms(); this.MouseButtonsUp = new Mouse_Buttoms(); }