使用pygam注册击键

2024-05-19 09:47:10 发布

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

我尝试使用pygame从事件队列中提取击键来注册击键。我可以检索到密钥,但无法从下面的其余信息中提取它。它看起来是这样的:

[<Event(2-KeyDown {'unicode': 'r', 'key': 114, 'mod': 0, 'scancode': 19})>]

我尝试过把它当作一个字符串、列表、元组和字典来处理,但是没有任何结果是有用的。在

这是我用来从事件队列获取信息的代码:

^{pr2}$

Tags: key字符串代码event信息mod列表字典
3条回答

您应该能够直接访问属性:

In [1]: import pygame

In [2]: pygame.init()
Out[2]: (6, 0)

In [3]: event = pygame.event.poll()

In [4]: event
Out[4]: <Event(2-KeyDown {'scancode': 0, 'key': 310, 'unicode': u'', 'mod': 0})>

In [5]: event.key
Out[5]: 310

看这个pygame example。在

您发布的内容看起来更像是一个事件列表,而不是单个事件。您确定使用的是pygame.event.poll而不是{}?在

你得到的是一个Pygame ^{}对象。在

根据主题上的Pygamedocumentation,您可以通过__dict__成员访问其属性。在

下面是一个示例(event.__dict__是一个dict对象):

>>> event.__dict__['key']
114
>>> event.__dict__['mod']
0

听起来您只需要事件的unicode属性。另外,使用pygame.event.get()而不是poll来获得所有的击键。在

for event in pygame.event.get():
    if event.type == pygame.KEYDOWN:
        key_list.append(event.unicode)

相关问题 更多 >

    热门问题