miércoles, 31 de diciembre de 2008

Pacman 0.002 - Los eventos

código pacman

Continuando con nuestro juego en Python, vamos a introducir el manejo de eventos. Los eventos son desde cambio de la ventana hasta teclas pulsadas, pasando por movimiento del ratón. Para hacernos una idea de los tipos de eventos, lo que vamos hacer es simplemente capturarlos y mostrarlos en pantalla. Para probarlo, ejecuta el juego y pulsa teclas, mueve el ratón, etc.

En la primera versión de nuestro pacman, parecía que nuestro juego se quedaba "colgado". Esto se debe a que no procesábamos los eventos.

Los eventos van quedando almacenados en una cola, a la espera de que los procesemos. Para recuperar todos los eventos empleamos la función "pygame.event.get()" que devuelve una lista con todos los eventos y los elimina de la cola original. Esto lo haremos en todas las iteraciones del bucle principal de nuestro programa.

  while True:
eventos = pygame.event.get()
ManejarEventos ()

sprites.update ()
sprites.clear (screen, background)
pygame.display.update (sprites.draw (screen))

reloj.tick (60) #tiempo de espera entre frames

A continuación, en nuestro ejemplo, vamos a llamar a la función "ManejarEventos()" que lo único que hace es mostrar en pantalla el tipo de evento y además chequea si se produce el evento de tipo "Quit" que da por terminado el juego. Este tipo de evento se produce por ejemplo cuando pulsamos sobre la "X" de la ventana para cerrarla.

def ManejarEventos():
global eventos
for event in eventos:
print event
if event.type == pygame.QUIT:
sys.exit(0) #se termina el programa
elif event.type == pygame.MOUSEBUTTONDOWN:
print event.pos


En las próximas entradas de este blog lo que haremos es permitir que pacman sea manejado con el teclado y que pueda comerse las otras piezas del juego.

No hay comentarios: