domingo, 30 de enero de 2011

Añadiendo el Wiimote a los scripts de PyGame

Pues eso, veamos como podemos hacer para añadir de forma fácil la posibilidad de usar el Wiimote en los scripts que usan PyGame modificando mínimamente el código.

La idea es muy simple, el sistema de eventos de PyGame permite añadir eventos desde fuera, mezclando eso con el sistema de callbacks de cwiid ( la librería para manejar el Wiimote ) podemos hacer como si se pulsasen teclas del teclado desde el Wiimote, los eventos se pueden crear así:


ev = pygame.event.Event( <tipo de evento>, { "key": <tecla> } )


Y después solo hay que añadirlos con:

pygame.event.post( ev )


Entonces el script quedaría algo como esto [ wii4pygame.py ], solo hay que hacer bind_wiimote(), opcionalmente mandando el número del led a activar ( 1 por defecto ), por ejemplo:


import wii4pygame
print "Pulsa [1] y [2]"
wmote = wii4pygame.bind_wiimote( ) # Salvar el wiimote del recolector de basura

# Y ya se puede usar el wiimote, pygame capturará los eventos

for event in pygame.event.get():
    ...



Genera eventos de tipo KEYDOWN o KEYUP según se pulsen o liberen botones
Las teclas pulsadas se "mapean" así ( wiimote: evento ) :

  •       A : 'A'
  •       B : 'B'
  •       1 : '1'
  •       2 : '2'
  •       +: '+'
  •        - :  '-'
  • Home: K_HOME
  •       ↑: K_UP
  •       ↓: K_DOWN
  •      ← : K_LEFT
  •      → : K_RIGHT

Y yastá, hale

No hay comentarios:

Publicar un comentario