键盘#
事件#
什么是键盘事件?#
键盘事件是Arade对物理键盘交互的表示。
例如,如果您的键盘工作正常,并且您在一个正在运行的街机游戏的窗口中键入字母A,它将看到两个单独的事件:
一个按键事件,其按键代码为
A
带有密钥代码的按键释放事件
A
如何处理键盘事件?#
您必须实现键事件处理程序。无论何时检测到按键事件,都会调用以下函数:
的子类上实现您自己的上述方法版本 arcade.Window
。这个 arcade.key 模块包含特定键的常量。
有关可运行的示例,请参阅以下内容:
备注
如果您正在使用 Views
,您还可以在它们上实现键事件处理程序方法。
修饰词#
什么是修饰语?#
修饰符是修改键盘输入行为的键。例如,Shift、Control和Command等键。锁定关键点(如Capslock)也是修改器。
主动是什么意思?#
修改器可以通过两种方式激活:
修改键当前由用户按住(例如:Shift)
锁定修改器当前处于打开状态(示例: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.key 至 track press and release events 。