簡體   English   中英

使用pygame注冊擊鍵

[英]Registering keystrokes using pygame

我正在嘗試使用pygame通過將鍵擊從事件隊列中拉出來注冊鍵擊。 我能夠檢索密鑰,但是無法從隨后的其余信息中提取密鑰。 它是這樣的:

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

我嘗試將其視為字符串,列表,元組和字典,但是沒有任何有用的東西。

這是我用來從事件隊列中獲取信息的代碼:

def get_key():
    event = pygame.event.poll()
    if event.type == pygame.KEYDOWN:
        key_list.append(event)

您擁有的是一個Pygame EventType對象。

根據有關該主題的Pygame 文檔 ,您可以通過__dict__成員訪問其屬性。

這是一個示例( event.__dict__dict對象):

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

您應該只能夠直接訪問屬性:

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示例

您發布的內容看起來更像是事件列表 ,而不是單個事件。 您確定使用的是pygame.event.poll而不是pygame.event.get嗎?

聽起來您只需要事件的unicode屬性即可。 另外,使用pygame.event.get()而不是poll來獲取所有擊鍵。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM