2024-04-27 03:57:11 发布
网友
我在pygame中使用num pad,但是num pad没有被识别。在
我知道我必须使用以下代码,但不知道如何使用:
if (event.key >= 0x100 and event.key <= 0x109)
下面是我使用return键的代码:
有人能帮忙吗?在
当您想检查键盘的某个键是否被按下时,您可以使用以下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_KP0,K_KP1。。。K_KP9,因为K_KP0在十进制中是256,在十六进制中是{},所以{}是十进制中的{},而{}是十六进制的等等
event.key >= 0x100 and event.key <= 0x109
K_KP0
K_KP1
K_KP9
256
另外,实际使用常量而不是十六进制文字会更好地提高可读性。在
下面是一个关于如何检查所有键盘号码或键盘返回键的简单示例:
你的代码
if (event.key >= 0x100 and event.key <= 0x109 and event.key == pygame.K_RETURN):
将不起作用,因为event.key不能大于256,小于265,同时等于13(K_RETURN是13)。在
event.key
265
13
K_RETURN
在我看来,最好的方法是创建由键盘常量组成的set,并检查其成员资格。在Python中,对包含在set中的成员身份测试非常快速,加上只使用pygame定义的符号常量来创建它,这会使您自己的代码完全独立于它们的实际值。在
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...
当您想检查键盘的某个键是否被按下时,您可以使用以下constants
您可以使用},所以{}是十进制中的{},而{}是十六进制的等等
event.key >= 0x100 and event.key <= 0x109
来检查K_KP0
,K_KP1
。。。K_KP9
,因为K_KP0
在十进制中是256
,在十六进制中是{另外,实际使用常量而不是十六进制文字会更好地提高可读性。在
下面是一个关于如何检查所有键盘号码或键盘返回键的简单示例:
^{pr2}$你的代码
将不起作用,因为
event.key
不能大于256
,小于265
,同时等于13
(K_RETURN
是13
)。在在我看来,最好的方法是创建由键盘常量组成的
set
,并检查其成员资格。在Python中,对包含在set
中的成员身份测试非常快速,加上只使用pygame
定义的符号常量来创建它,这会使您自己的代码完全独立于它们的实际值。在像这样:
相关问题 更多 >
编程相关推荐