Pygame的Num Pad输入?

2024-04-27 03:57:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我在pygame中使用num pad,但是num pad没有被识别。在

我知道我必须使用以下代码,但不知道如何使用:

if (event.key >= 0x100 and event.key <= 0x109)

下面是我使用return键的代码:

^{pr2}$

有人能帮忙吗?在


Tags: andkey代码eventreturnifpygamenum
2条回答

当您想检查键盘的某个键是否被按下时,您可以使用以下constants

K_KP0                 keypad 0
K_KP1                 keypad 1
K_KP2                 keypad 2
K_KP3                 keypad 3
K_KP4                 keypad 4
K_KP5                 keypad 5
K_KP6                 keypad 6
K_KP7                 keypad 7
K_KP8                 keypad 8
K_KP9                 keypad 9
K_KP_PERIOD   .       keypad period
K_KP_DIVIDE   /       keypad divide
K_KP_MULTIPLY *       keypad multiply
K_KP_MINUS    -       keypad minus
K_KP_PLUS     +       keypad plus
K_KP_ENTER    \r      keypad enter
K_KP_EQUALS   =       keypad equals

您可以使用event.key >= 0x100 and event.key <= 0x109来检查K_KP0K_KP1。。。K_KP9,因为K_KP0在十进制中是256,在十六进制中是{},所以{}是十进制中的{},而{}是十六进制的等等

另外,实际使用常量而不是十六进制文字会更好地提高可读性。在

下面是一个关于如何检查所有键盘号码或键盘返回键的简单示例:

^{pr2}$

你的代码

 if (event.key >= 0x100 and event.key <= 0x109 and event.key == pygame.K_RETURN):

将不起作用,因为event.key不能大于256,小于265,同时等于13K_RETURN13)。在

在我看来,最好的方法是创建由键盘常量组成的set,并检查其成员资格。在Python中,对包含在set中的成员身份测试非常快速,加上只使用pygame定义的符号常量来创建它,这会使您自己的代码完全独立于它们的实际值。在

像这样:

from pygame.locals import *

NUMPAD_KEYS = {K_KP0, K_KP1, K_KP2, K_KP3, K_KP4, K_KP5, K_KP6, K_KP7, K_KP8, K_KP9}

if event.key in NUMPAD_KEYS:
    # Do something...

相关问题 更多 >