示例#1
0
 private void glControl_KeyUp(object sender, KeyEventArgs e)
 {
     if (this.activeState.EngineUserInput)
     {
         Key inputKey = e.KeyCode.ToOpenTKSingle();
         this.inputKeyPressed = this.inputKeyPressed.And(e.KeyCode.ToOpenTK().Not());
     }
 }
示例#2
0
        private Script[] CreateTrackKeyboardScripts(OpenTK.Input.Key left, OpenTK.Input.Key right)
        {
            TrackKeyboardControlScript panzerControl = new TrackKeyboardControlScript(this, 300f);

            panzerControl.SetKeyToMoveLeft(left);
            panzerControl.SetKeyToMoveRight(right);
            return(new Script[] { panzerControl });
        }
示例#3
0
 protected override void OnKeyDown(OpenTK.Input.KeyboardKeyEventArgs e)
 {
     base.OnKeyDown(e);
     if (!tempoInicio.HasValue)
     {
         tempoInicio = DateTime.Now;
         tecla       = e.Key;
     }
 }
示例#4
0
        internal static Key ConvertOpenTKKey(TKKey key)
        {
            if (OpenTKKeyMap.TryGetValue(key, out var result))
            {
                return(result);
            }

            return(Key.Unknown);
        }
示例#5
0
 /// <returns>
 ///		対応する値がなければ SlimDX.DirectInput.Unknown を返す。
 /// </returns>
 public static SlimDXKey TKKtoKey(OpenTK.Input.Key key)
 {
     if (_TKKtoKey.ContainsKey(key))
     {
         return(_TKKtoKey[key]);
     }
     else
     {
         return(SlimDXKey.Unknown);
     }
 }
示例#6
0
文件: Keyboard.cs 项目: shff/gk3tools
        /*public static void UpdateFromSDLKeys(byte[] sdlkeys)
         * {
         *  for (int i = 0; i < sdlkeys.Length; i++)
         *      _current.SetState(translateSDLK((SDL2.SDL.SDL_Keycode)i), sdlkeys[i] == 0 ? KeyState.Up : KeyState.Down);
         * }*/

        private static Keys translateOpenTKKey(OpenTK.Input.Key key)
        {
            switch (key)
            {
            case OpenTK.Input.Key.Tilde: return(Keys.OemTilde);

            case OpenTK.Input.Key.Left: return(Keys.Left);

            case OpenTK.Input.Key.Up: return(Keys.Up);

            case OpenTK.Input.Key.Right: return(Keys.Right);

            case OpenTK.Input.Key.Down: return(Keys.Down);

            case OpenTK.Input.Key.LShift: return(Keys.LeftShift);

            case OpenTK.Input.Key.RShift: return(Keys.RightShift);

            case OpenTK.Input.Key.Space: return(Keys.Space);

            case OpenTK.Input.Key.BackSpace: return(Keys.Back);

            case OpenTK.Input.Key.Enter: return(Keys.Enter);

            case OpenTK.Input.Key.Semicolon: return(Keys.OemSemicolon);

            case OpenTK.Input.Key.Plus: return(Keys.OemPlus);

            case OpenTK.Input.Key.Minus: return(Keys.OemMinus);

            case OpenTK.Input.Key.Comma: return(Keys.OemComma);

            case OpenTK.Input.Key.Period: return(Keys.OemPeriod);

            case OpenTK.Input.Key.Slash: return(Keys.OemQuestion);

            case OpenTK.Input.Key.BackSlash: return(Keys.OemPipe);

            case OpenTK.Input.Key.Quote: return(Keys.OemQuotes);

            default:
                if ((int)key >= (int)OpenTK.Input.Key.A && (int)key <= (int)OpenTK.Input.Key.Z)
                {
                    return(Keys.A + (int)key - (int)OpenTK.Input.Key.A);
                }
                if ((int)key >= (int)OpenTK.Input.Key.Number0 && (int)key <= (int)OpenTK.Input.Key.Number9)
                {
                    return(Keys.D0 + (int)key - (int)OpenTK.Input.Key.Number0);
                }

                return(Keys.X);
            }
        }
示例#7
0
        private void ManageKey()
        {
            if (_keyDown.HasValue)
            {
                OpenTK.Input.Key key = _keyDown.Value;

                if (key >= OpenTK.Input.Key.A && key <= OpenTK.Input.Key.Z)
                {
                    string c = key.ToString();
                    if ((_modifierKeys & WidgetController.ModifierKeys.Shift) == 0)
                    {
                        c = c.ToLower();
                    }

                    _text += c;
                }
                else if (key >= OpenTK.Input.Key.Number0 && key <= OpenTK.Input.Key.Number9)
                {
                    int digit = key - OpenTK.Input.Key.Number0;
                    _text += digit.ToString();
                }
                else if (key >= OpenTK.Input.Key.Keypad0 && key <= OpenTK.Input.Key.Keypad9)
                {
                    int digit = key - OpenTK.Input.Key.Keypad0;
                    _text += digit.ToString();
                }
                else
                {
                    switch (key)
                    {
                    case OpenTK.Input.Key.BackSpace:
                        if (_text.Length > 0)
                        {
                            _text = _text.Substring(0, _text.Length - 1);
                        }
                        break;

                    case OpenTK.Input.Key.Space:
                        _text += " ";
                        break;

                    case OpenTK.Input.Key.Comma:
                        _text += ",";
                        break;

                    case OpenTK.Input.Key.Period:
                    case OpenTK.Input.Key.KeypadPeriod:
                        _text += ".";
                        break;
                    }
                }
            }
        }
示例#8
0
        private static KeyCode TransformKey(OpenTK.Input.Key key)
        {
            if (keyMap.ContainsKey(key))
            {
                return(keyMap[key]);
            }
            else
            {
                System.Diagnostics.Debug.Print("Could not map key {0}.", key);
            }

            return(KeyCode.None);
        }
示例#9
0
        public override void OnKeyPress(OpenTK.Input.Key k)
        {
            base.OnKeyPress(k);

            if (k == OpenTK.Input.Key.Space)
            {
                actor.Shoot();
            }
            else if (k == OpenTK.Input.Key.C)
            {
                Car c = new Car();
                Root.Instance.Scene.Spawn(c);
                c.Position      = camera.Position;
                c.Orientation   = camera.Orientation;
                c.Physics.Speed = camera.Direction * 10;
            }
        }
示例#10
0
        private void glControl_KeyUp(object sender, KeyEventArgs e)
        {
            if (this.activeState.EngineUserInput)
            {
                Key inputKey = e.KeyCode.ToOpenTKSingle();
                this.inputKeyPressed = this.inputKeyPressed.And(e.KeyCode.ToOpenTK().Not());
            }

            if (e.KeyCode >= Keys.D0 && e.KeyCode <= Keys.D9)
            {
                bool consumedByGame = this.activeState.EngineUserInput && Sandbox.IsActive;
                if (!consumedByGame && this.stateSelector.Items.Count > e.KeyCode - Keys.D0)
                {
                    this.stateSelector.SelectedIndex = e.KeyCode - Keys.D0;
                }
            }
        }
示例#11
0
        static Compatibility()
        {
            if (false && AZERTY_keyboard)
            {
                FirstPerson_Forward = OpenTK.Input.Key.Z;
                FirstPerson_Left    = OpenTK.Input.Key.Q;
            }
            else
            {
                FirstPerson_Forward = OpenTK.Input.Key.W;
                FirstPerson_Left    = OpenTK.Input.Key.A;
            }
            FirstPerson_Backward = OpenTK.Input.Key.S;
            FirstPerson_Right    = OpenTK.Input.Key.D;

            us_cultureinfo_for_decimal_separator = new System.Globalization.CultureInfo("en-US");
            us_cultureinfo_for_decimal_separator.NumberFormat.NumberDecimalSeparator = ".";
        }
示例#12
0
文件: Game.cs 项目: NullandKale/7DRL
 private void UseItem(OpenTK.Input.Key key, int num)
 {
     if (input.IsKeyRising(key))
     {
         if (input.IsKeyHeld(OpenTK.Input.Key.ControlLeft))
         {
             if (pcInv.playerInv.items.Count > num)
             {
                 pcInv.Sell(num);
             }
         }
         else
         {
             if (pcInv.playerInv.items.Count > num)
             {
                 if (pcInv.playerInv.items[num] is Weapon)
                 {
                     pcInv.EquipWeapon(num);
                 }
                 else if (pcInv.playerInv.items[num] is Armor)
                 {
                     pcInv.EquipArmor(num);
                 }
                 else if (pcInv.playerInv.items[num] is Ring)
                 {
                     pcInv.EquipRing(num);
                 }
                 else if (pcInv.playerInv.items[num] is Amulet)
                 {
                     pcInv.EquipAmulet(num);
                 }
                 else if (pcInv.playerInv.items[num] is Potion)
                 {
                     pcInv.UsePotion(num);
                 }
                 else if (pcInv.playerInv.items[num] is Tome)
                 {
                     pcInv.EquipTome(num);
                 }
             }
         }
     }
 }
示例#13
0
        internal void KeyDown(OpenTK.Input.Key key)
        {
            switch (key)
            {
            case OpenTK.Input.Key.Number1: enableMode(editModes[0]); break;

            case OpenTK.Input.Key.Number2: enableMode(editModes[1]); break;

            case OpenTK.Input.Key.Number3: enableMode(editModes[2]); break;

            case OpenTK.Input.Key.Number4: enableMode(editModes[3]); break;

            case OpenTK.Input.Key.Number5: enableMode(editModes[4]); break;

            case OpenTK.Input.Key.Number6: enableMode(editModes[5]); break;

            case OpenTK.Input.Key.Number7: enableMode(editModes[6]); break;
            }
        }
示例#14
0
        private Script[] CreateTurretKeyboardScripts(ProgressBar cooldownBar,
                                                     OpenTK.Input.Key up, OpenTK.Input.Key down, OpenTK.Input.Key shoot,
                                                     OpenTK.Input.Key next, OpenTK.Input.Key previous)
        {
            TurretKeyboardControlScript turretControl = new TurretKeyboardControlScript(2);

            turretControl.SetKeyToTurnUp(up);
            turretControl.SetKeyToTurnDown(down);
            ShootKeyboardControlScript shootControl = new ShootKeyboardControlScript(this);

            shootControl.SetKey(shoot);
            KeyboardRocketSwitcherScript rocketSwitcher = new KeyboardRocketSwitcherScript();

            rocketSwitcher.SetKeyToSelectNext(next);
            rocketSwitcher.SetKeyToSelectPrevious(previous);

            WpfShootControlScript wpfShootControl = new WpfShootControlScript(this, cooldownBar, shootControl);

            return(new Script[] { turretControl, rocketSwitcher, wpfShootControl });
        }
        /// <summary>
        /// Constructor
        /// </summary>
        public InputController()
        {
            LeftMouseKey   = OpenTK.Input.Key.Enter;
            RightMouseKey  = OpenTK.Input.Key.Unknown;
            MiddleMouseKey = OpenTK.Input.Key.Unknown;

            MouseEnabled    = true;
            KeyboardEnabled = true;

            _lastMousePosition    = new Vector2();
            _currentMousePosition = new Vector2();

            _mouseDownEventHandler  = new EventHandler <OpenTK.Input.MouseButtonEventArgs>(Mouse_ButtonDown);
            _mouseUpEventHandler    = new EventHandler <OpenTK.Input.MouseButtonEventArgs>(Mouse_ButtonUp);
            _mouseMoveEventHandler  = new EventHandler <OpenTK.Input.MouseMoveEventArgs>(Mouse_Move);
            _mouseWheelEventHandler = new EventHandler <OpenTK.Input.MouseWheelEventArgs>(Mouse_WheelChanged);

            _keyUpEventHandler   = new EventHandler <OpenTK.Input.KeyboardKeyEventArgs>(Keyboard_KeyUp);
            _keyDownEventHandler = new EventHandler <OpenTK.Input.KeyboardKeyEventArgs>(Keyboard_KeyDown);
        }
示例#16
0
        private void glControl_KeyDown(object sender, KeyEventArgs e)
        {
            if (!this.glControl.Focused)
            {
                this.glControl.Focus();
            }

            if (e.KeyCode == Keys.Escape || e.KeyCode == Keys.Tab || e.KeyCode == Keys.Alt)
            {
                this.inputMouseCapture = false;
            }

            if (this.activeState.EngineUserInput)
            {
                Key  inputKey   = e.KeyCode.ToOpenTKSingle();
                bool wasPressed = this.inputKeyPressed[(int)inputKey];
                this.inputKeyPressed = this.inputKeyPressed.Or(e.KeyCode.ToOpenTK());
                this.inputKeyRepeatCount++;
            }
        }
示例#17
0
        private void CheckCommand(OpenTK.Input.Key k)
        {
            switch (k)
            {
            case OpenTK.Input.Key.Keypad1: scaleMat = Matrix4.CreateScale(1); giantScaleMat = Matrix4.CreateScale(1); break;

            case OpenTK.Input.Key.Keypad2: scaleMat = Matrix4.CreateScale(10); giantScaleMat = Matrix4.CreateScale(2); break;

            case OpenTK.Input.Key.Keypad3: scaleMat = Matrix4.CreateScale(100); giantScaleMat = Matrix4.CreateScale(4); break;

            case OpenTK.Input.Key.Keypad4: scaleMat = Matrix4.CreateScale(200); giantScaleMat = Matrix4.CreateScale(8); break;

            case OpenTK.Input.Key.Keypad5: scaleMat = Matrix4.CreateScale(300); giantScaleMat = Matrix4.CreateScale(16); break;

            case OpenTK.Input.Key.Keypad6: scaleMat = Matrix4.CreateScale(400); giantScaleMat = Matrix4.CreateScale(24); break;

            case OpenTK.Input.Key.Space: CreateComet(); break;

            default: return;
            }
        }
示例#18
0
        public void OnKeyDown(OpenTK.Input.Key key, float deltaTime)
        {
            switch (key)
            {
            case OpenTK.Input.Key.A:
                camera.Set_PositionX(+2.525f * deltaTime);
                break;

            case OpenTK.Input.Key.D:
                camera.Set_PositionX(-2.525f * deltaTime);
                break;

            case OpenTK.Input.Key.W:
                camera.Set_PositionZ(+2.525f * deltaTime);
                break;

            case OpenTK.Input.Key.S:
                camera.Set_PositionZ(-2.525f * deltaTime);
                break;

            case OpenTK.Input.Key.Q:
                //camera.Set_RotationY(-2.525f * deltaTime);
                break;

            case OpenTK.Input.Key.E:
                //camera.Set_RotationY(+2.525f * deltaTime);
                break;

            case OpenTK.Input.Key.LShift:
                camera.Set_PositionY(+2.525f * deltaTime);
                break;

            case OpenTK.Input.Key.RShift:
                camera.Set_PositionY(-2.525f * deltaTime);
                break;

            default:
                break;
            }
        }
示例#19
0
 public NoiseWindow() : base(256, 256, GraphicsMode.Default, "0 FPS")
 {
     colors = new byte[Width * Height];
     VSync  = VSyncMode.On;
     GL.ClearColor(0.0f, 0.0f, 0.0f, 0.0f);
     internal_rows = 1;
     internal_cols = 1;
     half_height   = 0.5f;
     half_width    = 0.5f;
     ResetChangedPositions();
     KeyDown += (sender, e) => {
         if (!internal_key_pressed)
         {
             internal_key_pressed = true;
             internal_last_key    = e.Key;
         }
     };
     LoadTexture();
     LoadShaders();
     CreateVBO(1, 1);
     Visible = true;
     //WindowBorder = WindowBorder.Fixed;
 }
示例#20
0
 public static Keys ToXna(OpenTK.Input.Key key)
 {
     return(_map [key]);
 }
示例#21
0
        private void KeyEvent(OpenTK.Input.Key key, bool down)
        {
            int keyCode = (int)key;
            int cc;

            if (keyCode >= KEY_CODE_A && keyCode <= KEY_CODE_Z)
            {
                cc = keyCode - KEY_CODE_A + 65;
            }
            else if (keyCode >= KEY_CODE_F1 && keyCode <= KEY_CODE_F12)
            {
                if (this.altPressed && keyCode == KEY_CODE_F1 + 3)
                {
                    events.Enqueue(EXIT);
                    events.Enqueue(EXIT_ALT_F4);
                }
                cc = keyCode - KEY_CODE_F1 + 112;
            }
            else if (keyCode >= KEY_CODE_0 && keyCode <= KEY_CODE_9)
            {
                cc = keyCode - KEY_CODE_0 + 48;
            }
            else
            {
                switch (key)
                {
                case OpenTK.Input.Key.Space: cc = 32; break;

                case OpenTK.Input.Key.Enter:
                case OpenTK.Input.Key.KeypadEnter: cc = 13; break;

                case OpenTK.Input.Key.Tab: cc = 9; break;

                case OpenTK.Input.Key.Escape: cc = 27; break;

                case OpenTK.Input.Key.Left: cc = 37; break;

                case OpenTK.Input.Key.Right: cc = 39; break;

                case OpenTK.Input.Key.Up: cc = 38; break;

                case OpenTK.Input.Key.Down: cc = 40; break;

                case OpenTK.Input.Key.Comma: cc = 188; break;

                case OpenTK.Input.Key.Period: cc = 190; break;

                case OpenTK.Input.Key.Semicolon: cc = 186; break;

                case OpenTK.Input.Key.Quote: cc = 222; break;

                case OpenTK.Input.Key.Slash: cc = 191; break;

                case OpenTK.Input.Key.BackSlash: cc = 220; break;

                case OpenTK.Input.Key.BracketLeft: cc = 219; break;

                case OpenTK.Input.Key.BracketRight: cc = 221; break;

                case OpenTK.Input.Key.Minus: cc = 189; break;

                case OpenTK.Input.Key.Plus: cc = 187; break;

                case OpenTK.Input.Key.Tilde: cc = 192; break;

                case OpenTK.Input.Key.ControlLeft:
                case OpenTK.Input.Key.ControlRight: cc = 17; break;

                case OpenTK.Input.Key.ShiftLeft:
                case OpenTK.Input.Key.ShiftRight: cc = 16; break;

                case OpenTK.Input.Key.AltLeft:
                case OpenTK.Input.Key.AltRight: cc = 18; this.altPressed = down; break;

                case OpenTK.Input.Key.PageUp: cc = 33; break;

                case OpenTK.Input.Key.PageDown: cc = 34; break;

                case OpenTK.Input.Key.Home: cc = 36; break;

                case OpenTK.Input.Key.End: cc = 35; break;

                case OpenTK.Input.Key.Delete: cc = 46; break;

                case OpenTK.Input.Key.Insert: cc = 45; break;

                case OpenTK.Input.Key.BackSpace: cc = 8; break;

                case OpenTK.Input.Key.PrintScreen: cc = 44; break;

                case OpenTK.Input.Key.Pause: cc = 19; break;

                case OpenTK.Input.Key.WinLeft:
                case OpenTK.Input.Key.WinRight: cc = 91; break;

                case OpenTK.Input.Key.Menu: cc = 93; break;

                case OpenTK.Input.Key.CapsLock: cc = 20; break;

                case OpenTK.Input.Key.ScrollLock: cc = 145; break;

                case OpenTK.Input.Key.NumLock: cc = 144; break;

                default: return;
                }
            }
            events.Enqueue(KEY_EVENT);
            events.Enqueue(down ? 1 : 0);
            events.Enqueue(cc);
        }
 public KeyEventArgs(OpenTK.Input.Key key, ModifierKeys modifiers)
 {
     this.Key = key;
     this.Modifiers = modifiers;
 }
示例#23
0
 public static bool KeyReleased(OpenTK.Input.Key key)
 {
     return(CurrentState.IsKeyUp(key) && lastState.IsKeyDown(key));
 }
示例#24
0
 public static bool KeyUp(OpenTK.Input.Key key)
 {
     return(CurrentState.IsKeyUp(key));
 }
示例#25
0
        private void UpdateInput()
        {
            UIForm top = GetTopForm(MX, MY);

            if (top != null)
            {
                if (TopForm != top)
                {
                    if (TopForm != null)
                    {
                        if (TopForm != Pressed[0])
                        {
                            TopForm.MouseLeave?.Invoke();
                        }
                    }

                    top.MouseEnter?.Invoke();
                }
            }
            bool am = false;

            if (top != null)
            {
                if (top == TopForm)
                {
                    //    am = true;
                    //     top.MouseMove?.Invoke(MX - top.GX, MY - top.GY, MXD, MYD);
                }
            }
            bool pm = false;

            for (int i = 0; i < 32; i++)
            {
                if (Pressed[i] != null)
                {
                    pm = true;
                    Pressed[i].MouseMove?.Invoke(MX - Pressed[i].GX, MY - Pressed[i].GY, MXD, MYD);
                    Pressed[i].MouseWheelMoved?.Invoke(MZD);
                    break;
                }
            }
            if (TopForm != null && pm == false)
            {
                TopForm.MouseMove?.Invoke(MX - TopForm.GX, MY - TopForm.GY, MXD, MYD);
                TopForm.MouseWheelMoved?.Invoke(MZD);
            }

            if (top == null)
            {
                if (TopForm != null)
                {
                    if (TopForm != Pressed[0])
                    {
                        TopForm.MouseLeave?.Invoke();
                    }
                }
            }
            TopForm = top;

            if (Active != null)
            {
                Active.KeysIn?.Invoke(Input.Input.KeysIn());

                OpenTK.Input.Key key = Input.Input.KeyIn();
                if (key != OpenTK.Input.Key.LastKey)
                {
                    if (key == OpenTK.Input.Key.LastKey)
                    {
                        LastKey = OpenTK.Input.Key.LastKey;
                        NextKey = 0;
                    }
                    if (key == LastKey)
                    {
                        bool shift = false;
                        if (Input.Input.KeyIn(OpenTK.Input.Key.ShiftLeft))
                        {
                            shift = true;
                        }
                        if (Input.Input.KeyIn(OpenTK.Input.Key.ShiftRight))
                        {
                            shift = true;
                        }
                        if (Environment.TickCount > NextKey)
                        {
                            Active.KeyPress?.Invoke(key, shift);
                            NextKey = Environment.TickCount + 90;
                        }
                    }
                    else
                    {
                        bool shift = false;
                        if (Input.Input.KeyIn(OpenTK.Input.Key.ShiftLeft))
                        {
                            shift = true;
                        }
                        if (Input.Input.KeyIn(OpenTK.Input.Key.ShiftRight))
                        {
                            shift = true;
                        }
                        LastKey = key;
                        Active.KeyPress?.Invoke(key, shift);
                        NextKey = Environment.TickCount + 250;
                    }
                }
            }

            if (Input.Input.AnyButtons())
            {
                int bn = Input.Input.ButtonNum();
                if (TopForm != ActiveMenu)
                {
                    //ActiveMenu = null;
                }
                if (TopForm != null)
                {
                    if (Pressed[bn] == null)
                    {
                        if (bn == 0)
                        {
                            //if (ActiveMenu)
                            if (ActiveMenu != null)
                            {
                                if (TopForm == ActiveMenu.Owner)
                                {
                                    ActiveMenu = null;
                                }
                            }
                        }
                        if (bn == 1)
                        {
                            if (TopForm.ContextMenu != null)
                            {
                                ActiveMenu       = TopForm.ContextMenu;
                                ActiveMenu.X     = MX - 10;
                                ActiveMenu.Y     = MY - 10;
                                ActiveMenu.Owner = TopForm;
                                goto SkipClick;
                            }
                        }

                        if (Environment.TickCount < lastClick + 300)
                        {
                            clicks++;
                            if (clicks == 2)
                            {
                                TopForm.DoubleClick?.Invoke(bn);
                            }
                        }
                        else
                        {
                            clicks = 1;
                            //TopForm.Click?.Invoke(0);
                        }
                        lastClick = Environment.TickCount;
                        TopForm.MouseDown?.Invoke(bn);

                        Pressed[bn] = TopForm;
                        if (Active != TopForm)
                        {
                            if (Active != null)
                            {
                                Active.Deactivate?.Invoke();
                            }
                        }
                        Active = TopForm;
                        TopForm.Activate?.Invoke();
                        UIForm root = TopForm;
                        if (bn == 0)
                        {
                            while (true)
                            {
                                if (root.GetType().IsSubclassOf(typeof(Forms.WindowForm)))
                                {
                                    if (root.Root != null)
                                    {
                                        root.Root.Forms.Remove(root);
                                        root.Root.Forms.Add(root);
                                    }
                                    break;
                                }
                                root = root.Root;
                                if (root == null)
                                {
                                    break;
                                }
                            }
                        }
                        if (sdrag)
                        {
                            sdx = MX;
                            sdy = MY;
                        }
                    }
                    else if (Pressed[bn] == TopForm)
                    {
                        TopForm.MousePressed?.Invoke(bn);
                    }
                    else if (Pressed[bn] != TopForm)
                    {
                        Pressed[bn].MousePressed?.Invoke(bn);
                    }
                }
                else
                {
                    if (Pressed[bn] != null)
                    {
                        Pressed[bn].MousePressed?.Invoke(0);
                        //  Pressed[bn].Click?.Invoke(0);
                    }
                }

                if (Pressed[bn] != null)
                {
                    // Console.WriteLine("MX:" + MX + " MY:" + MY + " SDX:" + sdx + " SDY:" + sdy);
                    int mvx = MX - sdx;
                    int mvy = MY - sdy;
                    if (mvx != 0 || mvy != 0)
                    {
                        Pressed[bn].Drag?.Invoke(mvx, mvy);
                        Pressed[bn].PostDrag?.Invoke(mvx, mvy);
                    }
                    sdx = MX;

                    sdy = MY;
                    //Console.WriteLine(@)

                    //sdx = MX-Pressed[0].GY;

                    //sdy = MY-Pressed[0].GY;
                }
            }
            else
            {
                for (int i = 0; i < 32; i++)
                {
                    //Console.WriteLine("Wop");
                    if (Pressed[i] != null)
                    {
                        if (Pressed[i].InBounds(MX, MY) == false)
                        {
                            Pressed[i].MouseLeave?.Invoke();
                        }

                        Pressed[i].MouseUp?.Invoke(i);
                        if (!(Pressed[i] is Resonance.Forms.ButtonForm))
                        {
                            Pressed[i].Click?.Invoke(i);
                        }
                        Pressed[i] = null;
                        sdrag      = true;
                    }
                }
            }
            for (int i = 0; i < 32; i++)
            {
                if (Pressed[i] != null)
                {
                    WindS += (float)(Math.Abs(MXD + MYD)) / 150.0f;
                    if (WindS > 1.5f)
                    {
                        WindS = 1.5f;
                    }
                }
            }
SkipClick:

            return;
        }
示例#26
0
 bool IKeyboardInputSource.this[Key key]
 {
     get { return(this.inputKeyPressed[(int)key]); }
 }
示例#27
0
 public void WrappedKeys_Returns_ExpectedOpenTkKeys(Key wrapped, tkKey expected)
 {
     ((tkKey)wrapped).ShouldBe(expected);
 }
示例#28
0
		bool IKeyboardInputSource.this[Key key]
		{
			get { return this.inputKeyPressed[(int)key]; }
		}
示例#29
0
 public bool KeyIsDown(OpenTK.Input.Key key) => OpenTK.Input.Keyboard.GetState().IsKeyDown(key);
示例#30
0
 internal static Key FromOpenTK(OpenTK.Input.Key key)
 {
     return((Key)((int)key));
 }
示例#31
0
 public KeyboardEvent(bool IsKeyDown, OpenTK.Input.Key Key)
 {
     EventType      = Type.Keyboard;
     this.IsKeyDown = IsKeyDown;
     this.Key       = Key;
 }
示例#32
0
        public static Microsoft.Xna.Framework.Input.Keys ToXna(this OpenTK.Input.Key key)
        {
            switch (key)
            {
            case OpenTK.Input.Key.A:
                return(Input.Keys.A);

            case OpenTK.Input.Key.AltLeft:
                return(Input.Keys.LeftAlt);

            case OpenTK.Input.Key.AltRight:
                return(Input.Keys.RightAlt);

            case OpenTK.Input.Key.B:
                return(Input.Keys.B);

            case OpenTK.Input.Key.Back:
                return(Input.Keys.Back);

            case OpenTK.Input.Key.BackSlash:
                return(Input.Keys.OemBackslash);

            case OpenTK.Input.Key.BracketLeft:
                return(Input.Keys.OemOpenBrackets);

            case OpenTK.Input.Key.BracketRight:
                return(Input.Keys.OemCloseBrackets);

            case OpenTK.Input.Key.C:
                return(Input.Keys.C);

            case OpenTK.Input.Key.CapsLock:
                return(Input.Keys.CapsLock);

            case OpenTK.Input.Key.Clear:
                return(Input.Keys.OemClear);

            case OpenTK.Input.Key.Comma:
                return(Input.Keys.OemComma);

            case OpenTK.Input.Key.ControlLeft:
                return(Input.Keys.LeftControl);

            case OpenTK.Input.Key.ControlRight:
                return(Input.Keys.RightControl);

            case OpenTK.Input.Key.D:
                return(Input.Keys.D);

            case OpenTK.Input.Key.Delete:
                return(Input.Keys.Delete);

            case OpenTK.Input.Key.Down:
                return(Input.Keys.Down);

            case OpenTK.Input.Key.E:
                return(Input.Keys.E);

            case OpenTK.Input.Key.End:
                return(Input.Keys.End);

            case OpenTK.Input.Key.Enter:
                return(Input.Keys.Enter);

            case OpenTK.Input.Key.Escape:
                return(Input.Keys.Escape);

            case OpenTK.Input.Key.F:
                return(Input.Keys.F);

            case OpenTK.Input.Key.F1:
                return(Input.Keys.F1);

            case OpenTK.Input.Key.F10:
                return(Input.Keys.F10);

            case OpenTK.Input.Key.F11:
                return(Input.Keys.F11);

            case OpenTK.Input.Key.F12:
                return(Input.Keys.F12);

            case OpenTK.Input.Key.F13:
                return(Input.Keys.F13);

            case OpenTK.Input.Key.F14:
                return(Input.Keys.F14);

            case OpenTK.Input.Key.F15:
                return(Input.Keys.F15);

            case OpenTK.Input.Key.F16:
                return(Input.Keys.F16);

            case OpenTK.Input.Key.F17:
                return(Input.Keys.F17);

            case OpenTK.Input.Key.F18:
                return(Input.Keys.F18);

            case OpenTK.Input.Key.F19:
                return(Input.Keys.F19);

            case OpenTK.Input.Key.F2:
                return(Input.Keys.F2);

            case OpenTK.Input.Key.F20:
                return(Input.Keys.F20);

            case OpenTK.Input.Key.F21:
                return(Input.Keys.F21);

            case OpenTK.Input.Key.F22:
                return(Input.Keys.F22);

            case OpenTK.Input.Key.F23:
                return(Input.Keys.F23);

            case OpenTK.Input.Key.F24:
                return(Input.Keys.F24);

            case OpenTK.Input.Key.F25:
                return(Input.Keys.None);

            case OpenTK.Input.Key.F26:
                return(Input.Keys.None);

            case OpenTK.Input.Key.F27:
                return(Input.Keys.None);

            case OpenTK.Input.Key.F28:
                return(Input.Keys.None);

            case OpenTK.Input.Key.F29:
                return(Input.Keys.None);

            case OpenTK.Input.Key.F3:
                return(Input.Keys.F3);

            case OpenTK.Input.Key.F30:
                return(Input.Keys.None);

            case OpenTK.Input.Key.F31:
                return(Input.Keys.None);

            case OpenTK.Input.Key.F32:
                return(Input.Keys.None);

            case OpenTK.Input.Key.F33:
                return(Input.Keys.None);

            case OpenTK.Input.Key.F34:
                return(Input.Keys.None);

            case OpenTK.Input.Key.F35:
                return(Input.Keys.None);

            case OpenTK.Input.Key.F4:
                return(Input.Keys.F4);

            case OpenTK.Input.Key.F5:
                return(Input.Keys.F5);

            case OpenTK.Input.Key.F6:
                return(Input.Keys.F6);

            case OpenTK.Input.Key.F7:
                return(Input.Keys.F7);

            case OpenTK.Input.Key.F8:
                return(Input.Keys.F8);

            case OpenTK.Input.Key.F9:
                return(Input.Keys.F9);

            case OpenTK.Input.Key.G:
                return(Input.Keys.G);

            case OpenTK.Input.Key.H:
                return(Input.Keys.H);

            case OpenTK.Input.Key.Home:
                return(Input.Keys.Home);

            case OpenTK.Input.Key.I:
                return(Input.Keys.I);

            case OpenTK.Input.Key.Insert:
                return(Input.Keys.Insert);

            case OpenTK.Input.Key.J:
                return(Input.Keys.J);

            case OpenTK.Input.Key.K:
                return(Input.Keys.K);

            case OpenTK.Input.Key.Keypad0:
                return(Input.Keys.NumPad0);

            case OpenTK.Input.Key.Keypad1:
                return(Input.Keys.NumPad1);

            case OpenTK.Input.Key.Keypad2:
                return(Input.Keys.NumPad2);

            case OpenTK.Input.Key.Keypad3:
                return(Input.Keys.NumPad3);

            case OpenTK.Input.Key.Keypad4:
                return(Input.Keys.NumPad4);

            case OpenTK.Input.Key.Keypad5:
                return(Input.Keys.NumPad5);

            case OpenTK.Input.Key.Keypad6:
                return(Input.Keys.NumPad6);

            case OpenTK.Input.Key.Keypad7:
                return(Input.Keys.NumPad7);

            case OpenTK.Input.Key.Keypad8:
                return(Input.Keys.NumPad8);

            case OpenTK.Input.Key.Keypad9:
                return(Input.Keys.NumPad9);

            case OpenTK.Input.Key.KeypadAdd:
                return(Input.Keys.Add);

            case OpenTK.Input.Key.KeypadDecimal:
                return(Input.Keys.Decimal);

            case OpenTK.Input.Key.KeypadDivide:
                return(Input.Keys.Divide);

            case OpenTK.Input.Key.KeypadEnter:
                return(Input.Keys.Enter);

            case OpenTK.Input.Key.KeypadMinus:
                return(Input.Keys.OemMinus);

            case OpenTK.Input.Key.KeypadMultiply:
                return(Input.Keys.Multiply);

            case OpenTK.Input.Key.L:
                return(Input.Keys.L);

            case OpenTK.Input.Key.LShift:
                return(Input.Keys.LeftShift);

            case OpenTK.Input.Key.LWin:
                return(Input.Keys.LeftWindows);

            case OpenTK.Input.Key.Left:
                return(Input.Keys.Left);

            case OpenTK.Input.Key.M:
                return(Input.Keys.M);

            case OpenTK.Input.Key.Minus:
                return(Input.Keys.OemMinus);

            case OpenTK.Input.Key.N:
                return(Input.Keys.N);

            case OpenTK.Input.Key.NumLock:
                return(Input.Keys.NumLock);

            case OpenTK.Input.Key.Number0:
                return(Input.Keys.D1);

            case OpenTK.Input.Key.Number1:
                return(Input.Keys.D1);

            case OpenTK.Input.Key.Number2:
                return(Input.Keys.D2);

            case OpenTK.Input.Key.Number3:
                return(Input.Keys.D3);

            case OpenTK.Input.Key.Number4:
                return(Input.Keys.D4);

            case OpenTK.Input.Key.Number5:
                return(Input.Keys.D5);

            case OpenTK.Input.Key.Number6:
                return(Input.Keys.D6);

            case OpenTK.Input.Key.Number7:
                return(Input.Keys.D7);

            case OpenTK.Input.Key.Number8:
                return(Input.Keys.D8);

            case OpenTK.Input.Key.Number9:
                return(Input.Keys.D9);

            case OpenTK.Input.Key.O:
                return(Input.Keys.O);

            case OpenTK.Input.Key.P:
                return(Input.Keys.P);

            case OpenTK.Input.Key.PageDown:
                return(Input.Keys.PageDown);

            case OpenTK.Input.Key.PageUp:
                return(Input.Keys.PageUp);

            case OpenTK.Input.Key.Pause:
                return(Input.Keys.Pause);

            case OpenTK.Input.Key.Period:
                return(Input.Keys.OemPeriod);

            case OpenTK.Input.Key.Plus:
                return(Input.Keys.OemPlus);

            case OpenTK.Input.Key.PrintScreen:
                return(Input.Keys.PrintScreen);

            case OpenTK.Input.Key.Q:
                return(Input.Keys.Q);

            case OpenTK.Input.Key.Quote:
                return(Input.Keys.OemQuotes);

            case OpenTK.Input.Key.R:
                return(Input.Keys.R);

            case OpenTK.Input.Key.Right:
                return(Input.Keys.Right);

            case OpenTK.Input.Key.S:
                return(Input.Keys.S);

            case OpenTK.Input.Key.ScrollLock:
                return(Input.Keys.Scroll);

            case OpenTK.Input.Key.Semicolon:
                return(Input.Keys.OemSemicolon);

            case OpenTK.Input.Key.Slash:
                return(Input.Keys.None);

            case OpenTK.Input.Key.Sleep:
                return(Input.Keys.Sleep);

            case OpenTK.Input.Key.Space:
                return(Input.Keys.Space);

            case OpenTK.Input.Key.T:
                return(Input.Keys.T);

            case OpenTK.Input.Key.Tab:
                return(Input.Keys.Tab);

            case OpenTK.Input.Key.Tilde:
                return(Input.Keys.OemTilde);

            case OpenTK.Input.Key.U:
                return(Input.Keys.U);

            case OpenTK.Input.Key.Unknown:
                return(Input.Keys.None);

            case OpenTK.Input.Key.Up:
                return(Input.Keys.Up);

            case OpenTK.Input.Key.V:
                return(Input.Keys.V);

            case OpenTK.Input.Key.W:
                return(Input.Keys.W);

            case OpenTK.Input.Key.X:
                return(Input.Keys.X);

            case OpenTK.Input.Key.Y:
                return(Input.Keys.Y);

            case OpenTK.Input.Key.Z:
                return(Input.Keys.Z);

            default:
                return(Input.Keys.None);
            }
        }
示例#33
0
 private static InputManager.KeyboardKey ConvertOpenTKKey(OpenTK.Input.Key key)
 {
     if (key == OpenTK.Input.Key.A)
     {
         return(InputManager.KeyboardKey.A);
     }
     else if (key == OpenTK.Input.Key.B)
     {
         return(InputManager.KeyboardKey.B);
     }
     else if (key == OpenTK.Input.Key.C)
     {
         return(InputManager.KeyboardKey.C);
     }
     else if (key == OpenTK.Input.Key.D)
     {
         return(InputManager.KeyboardKey.D);
     }
     else if (key == OpenTK.Input.Key.E)
     {
         return(InputManager.KeyboardKey.E);
     }
     else if (key == OpenTK.Input.Key.F)
     {
         return(InputManager.KeyboardKey.F);
     }
     else if (key == OpenTK.Input.Key.G)
     {
         return(InputManager.KeyboardKey.G);
     }
     else if (key == OpenTK.Input.Key.H)
     {
         return(InputManager.KeyboardKey.H);
     }
     else if (key == OpenTK.Input.Key.I)
     {
         return(InputManager.KeyboardKey.I);
     }
     else if (key == OpenTK.Input.Key.J)
     {
         return(InputManager.KeyboardKey.J);
     }
     else if (key == OpenTK.Input.Key.K)
     {
         return(InputManager.KeyboardKey.K);
     }
     else if (key == OpenTK.Input.Key.L)
     {
         return(InputManager.KeyboardKey.L);
     }
     else if (key == OpenTK.Input.Key.M)
     {
         return(InputManager.KeyboardKey.M);
     }
     else if (key == OpenTK.Input.Key.N)
     {
         return(InputManager.KeyboardKey.N);
     }
     else if (key == OpenTK.Input.Key.O)
     {
         return(InputManager.KeyboardKey.O);
     }
     else if (key == OpenTK.Input.Key.P)
     {
         return(InputManager.KeyboardKey.P);
     }
     else if (key == OpenTK.Input.Key.Q)
     {
         return(InputManager.KeyboardKey.Q);
     }
     else if (key == OpenTK.Input.Key.R)
     {
         return(InputManager.KeyboardKey.R);
     }
     else if (key == OpenTK.Input.Key.S)
     {
         return(InputManager.KeyboardKey.S);
     }
     else if (key == OpenTK.Input.Key.T)
     {
         return(InputManager.KeyboardKey.T);
     }
     else if (key == OpenTK.Input.Key.U)
     {
         return(InputManager.KeyboardKey.U);
     }
     else if (key == OpenTK.Input.Key.V)
     {
         return(InputManager.KeyboardKey.V);
     }
     else if (key == OpenTK.Input.Key.W)
     {
         return(InputManager.KeyboardKey.W);
     }
     else if (key == OpenTK.Input.Key.X)
     {
         return(InputManager.KeyboardKey.X);
     }
     else if (key == OpenTK.Input.Key.Y)
     {
         return(InputManager.KeyboardKey.Y);
     }
     else if (key == OpenTK.Input.Key.Z)
     {
         return(InputManager.KeyboardKey.Z);
     }
     else if (key == OpenTK.Input.Key.Space)
     {
         return(InputManager.KeyboardKey.Space);
     }
     else if (key == OpenTK.Input.Key.BackSpace)
     {
         return(InputManager.KeyboardKey.Backspace);
     }
     else if (key == OpenTK.Input.Key.AltLeft)
     {
         return(InputManager.KeyboardKey.LeftAlt);
     }
     else if (key == OpenTK.Input.Key.AltRight)
     {
         return(InputManager.KeyboardKey.RightAlt);
     }
     else if (key == OpenTK.Input.Key.ControlLeft)
     {
         return(InputManager.KeyboardKey.LeftCtrl);
     }
     else if (key == OpenTK.Input.Key.ControlRight)
     {
         return(InputManager.KeyboardKey.RightCtrl);
     }
     else if (key == OpenTK.Input.Key.RShift)
     {
         return(InputManager.KeyboardKey.RightShift);
     }
     else if (key == OpenTK.Input.Key.LShift)
     {
         return(InputManager.KeyboardKey.LeftShift);
     }
     else if (key == OpenTK.Input.Key.Number0)
     {
         return(InputManager.KeyboardKey.Num0);
     }
     else if (key == OpenTK.Input.Key.Number1)
     {
         return(InputManager.KeyboardKey.Num1);
     }
     else if (key == OpenTK.Input.Key.Number2)
     {
         return(InputManager.KeyboardKey.Num2);
     }
     else if (key == OpenTK.Input.Key.Number3)
     {
         return(InputManager.KeyboardKey.Num3);
     }
     else if (key == OpenTK.Input.Key.Number4)
     {
         return(InputManager.KeyboardKey.Num4);
     }
     else if (key == OpenTK.Input.Key.Number5)
     {
         return(InputManager.KeyboardKey.Num5);
     }
     else if (key == OpenTK.Input.Key.Number6)
     {
         return(InputManager.KeyboardKey.Num6);
     }
     else if (key == OpenTK.Input.Key.Number7)
     {
         return(InputManager.KeyboardKey.Num7);
     }
     else if (key == OpenTK.Input.Key.Number8)
     {
         return(InputManager.KeyboardKey.Num8);
     }
     else if (key == OpenTK.Input.Key.Number9)
     {
         return(InputManager.KeyboardKey.Num9);
     }
     else
     {
         return(InputManager.KeyboardKey.None);
     }
 }