2017-08-16 1 views
1

Ich versuche, pygame zu verwenden, um Tastenanschläge durch Ziehen aus der Ereigniswarteschlange zu registrieren. Ich kann den Schlüssel abrufen, aber ich kann ihn nicht aus dem Rest der folgenden Informationen extrahieren. Dies ist, wie es aussieht:Registrieren von Tastenanschlägen mit Pygame

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

Ich habe versucht, es wie eine Zeichenfolge, Liste, Tupel Behandlung und Wörterbuch, aber nichts ergibt, etwas Sinnvolles.

Dies ist der Code, den ich verwendet, um Informationen aus der Ereigniswarteschlange zu erhalten:

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

Was versuchen Sie mit den Ereignissen oder Tastenanschlägen zu tun? – skrx

+0

Ich versuche, ein Tippspiel zu erstellen, aber es sieht so aus, als wäre dies nicht der beste Weg, Tastenanschläge aufzuzeichnen. Es ignoriert Tastatureingaben, wenn Sie zu schnell tippen. –

Antwort

0

Was Sie haben, ist ein Pygame EventType Objekt.

Nach dem Pygame documentation zum Thema, können Sie seine Attribute über die Mitglied zugreifen.

Hier ist ein Beispiel (event.__dict__ ist ein dict Objekt):

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

Sie sollten nur in der Lage sein, die Attribute direkt zuzugreifen:

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 

diese pygame example See.

Was Sie gepostet haben, sieht eher wie eine Liste von Ereignissen als ein einzelnes Ereignis aus. Sind Sie sicher, dass Sie pygame.event.poll und nicht pygame.event.get verwenden?

0

Es klingt, als ob Sie nur das unicode Attribut des Ereignisses benötigen. Verwenden Sie auch pygame.event.get() anstelle von poll, um alle Tastenanschläge zu erhalten.

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

In Bezug auf die verpassten Tastenanschläge, besser eine andere Frage. – skrx

Verwandte Themen