name keys python pygame

python - keys - Pygame solo detecta eventos de mouse, no detecta eventos de KEYDOWN



key name pygame (2)

He escrito el siguiente programa simple que debe imprimir todos los eventos detectados por pygame.event.get() .

import pygame, sys from pygame.locals import * display = pygame.display.set_mode((300, 300)) pygame.init() while True: for event in pygame.event.get(): print(event) if event.type == QUIT: pygame.quit() sys.exit()

Pero cuando ejecuto esto solo tengo eventos de mouse, y un evento KEYDOWN y KEYUP cuando presiono caps-lock dos veces, imprimiéndolo en la terminal. Cuando uso cualquier otra tecla, solo imprimen en la terminal como si estuviera escribiendo en la ventana de la terminal.

<Event(4-MouseMotion {''pos'': (102, 15), ''buttons'': (0, 0, 0), ''rel'': (-197, -284)})> <Event(2-KeyDown {''unicode'': '''', ''scancode'': 0, ''key'': 301, ''m od'': 8192})> <Event(3-KeyUp {''key'': 301, ''scancode'': 0, ''mod'': 0})> wasd

Estoy usando Mac OSX 10.12.1, Python 3.5.2 y pygame 1.9.4.dev0.

Supongo que me estoy perdiendo algo sencillo, pero no encontré nada similar en línea. Cualquier ayuda sería muy apreciada.


En primer lugar, dudo que lo estés, pero pygame solo registra las entradas cuando te centras en la pantalla del pygame, así que ahí está. No tengo una respuesta directa a su pregunta, lo siento mucho, pero tengo mi solución o la soluciono. Como no me gusta el sistema de eventos normales, uso pygame.key.get_pressed () ( https://www.pygame.org/docs/ref/key.html ) simplemente porque creo que se ve mejor y más legible. Esto es probablemente solo un mal hábito mío, aunque muuuy .....


Si está trabajando en virtualenv, no use el comando virtualenv .

Utilice python3 -m venv .

Luego, instale pygame ( por ejemplo, pip3 install hg+http://bitbucket.org/pygame/pygame ).

Mira este hilo para más detalles sobre este tema.