键盘#

事件#

什么是键盘事件?#

键盘事件是Arade对物理键盘交互的表示。

例如,如果您的键盘工作正常,并且您在一个正在运行的街机游戏的窗口中键入字母A,它将看到两个单独的事件:

  1. 一个按键事件,其按键代码为 A

  2. 带有密钥代码的按键释放事件 A

如何处理键盘事件?#

您必须实现键事件处理程序。无论何时检测到按键事件,都会调用以下函数:

的子类上实现您自己的上述方法版本 arcade.Window 。这个 arcade.key 模块包含特定键的常量。

有关可运行的示例,请参阅以下内容:

备注

如果您正在使用 Views ,您还可以在它们上实现键事件处理程序方法。

修饰词#

什么是修饰语?#

修饰符是修改键盘输入行为的键。例如,Shift、Control和Command等键。锁定关键点(如Capslock)也是修改器。

主动是什么意思?#

修改器可以通过两种方式激活:

  1. 修改键当前由用户按住(例如:Shift)

  2. 锁定修改器当前处于打开状态(示例:Capslock)

这一点很重要,因为锁定修改器可以在不按下相应键的情况下处于活动状态。取而代之的是,通过按键来打开和关闭它们。

如何使用修饰符?#

只要不需要区分左版本和右版本的修改器键,就可以依赖 modifiers 的论点 key event handlers

对于每个键事件,所有修饰符的当前状态都通过 modifiers 参数作为单个整数。对于事件期间的每个激活修改器,相应的位被设置为1。

其中每个位的常量在中定义 arcade.key

MOD_SHIFT
MOD_CTRL
MOD_ALT         Not available on Mac OS X
MOD_WINDOWS     Available on Windows only
MOD_COMMAND     Available on Mac OS X only
MOD_OPTION      Available on Mac OS X only
MOD_CAPSLOCK
MOD_NUMLOCK
MOD_SCROLLLOCK
MOD_ACCEL       Equivalent to MOD_CTRL, or MOD_COMMAND on Mac OS X.

您可以将这些常量与按位运算一起使用,以检查特定修饰符在键盘事件期间是否处于活动状态:

# this should be implemented on a subclass of Window or View
def on_key_press(self, symbol, modifiers):

    if modifiers & arcade.key.MOD_SHIFT:
        print("The shift key is held down")

    if modifiers & arcade.key.MOD_CAPSLOCK:
        print("Capslock is on")

我如何区分左右修改器?#

许多键盘都有左版本和右版本的修改符,如Shift和Control。然而, modifiers 参数不会告诉您当前按下了哪个特定的修改键!

相反,您必须使用中的左版本和右版本的特定键代码 arcade.keytrack press and release events