Tu estás aquí: ¡Bienvenido! » Traducciones » pygame » event
Usuario
Buscar páginas
Esta Pagina
General

event

Módulo de pygame para interactuar con eventos y pedidos.

Pygame maneja todos sus mensajes de eventos a través de una cola de eventos. Las rutinas de este módulo le ayudarán a manejar esta cola de eventos. Los eventos de entrada son extremadamente dependientes del módulo display de pygame. La cola de eventos no funcionará a menos que se halla inicializado el módulo display y el modo de video.

La cola de eventos es una lista de objetos Event, hay diversas maneras de acceder a los eventos que esta contiene. Desde consultar por la existencia de eventos, a extraerlos directamente de la pila.

Todos los eventos tienen un identificador type. Este identificador está entre los valores NOEVENT y NUMEVENTS. Todos los eventos definidos por el usuario pueden tener el valor de USEREVENT o superior. Se recomienda asegurarse de que sus identificadores de evento sigan este sistema.

Para obtener el estado de varios dispositivos de entrada puede olvidar la cola de eventos y acceder a los dispositivos directamente desde sus módulos asignados: mouse, key y joystick. Si usa este método, recuerde que pygame requiere alguna forma de comunicación con el sistema de ventanas y otras partes del sistema. Para mantener a pygame en coherencia con el sistema necesita llamar a pygame.event.pump periodicamente, usualmente una vez por ciclo del bucle de juego.

La cola de eventos ofrece una forma de filtro simple. Esto puede ayudar a mejorar el rendimiento bloqueando ciertos tipos de eventos de la cola, use las funciones pygame.event.set_allowed() y pygame.event.set_blocked() para trabajar con este filtrado. Por defecto todos los eventos están permitidos.

Los controles de Joystick no emitirán ningún evento a menos que se inicialice el dispositivo.

Un objeto Evento contiene un tipo de evento y un conjunto de miembros, o atributos, de solo lectura. El objeto Evento no contiene métodos, solo información. Estos objetos se obtienen desde la cola de eventos. E incluso puede crear sus propios eventos con una llamada a pygame.event.Event().

Su programa debe seguir ciertos pasos para evitar que la cola de eventos se sobrepase del límite. Si el programa no limpia o elimina los eventos de la cola de eventos en intervalos regulares, esta podría desbordarse. Se lanzará una excepción si la cola desborda.

Todos los objetos Event contienen un identificador de tipo en el atributo Event.type. Usted puede obtener acceso a todos los atributos del evento a través el método Event.dict. Todas las otras búsquedas de atributos pasarán a través de los valores de diccionario del evento.

Puede imprimir los objetos Event para ver rápidamente su tipo y atributos mientras depura o experimenta. Los eventos que vienen desde el sistema tendrán un grupo asegurado de atributos basados en cada tipo. Esta es una lista de los atributos de evento que se definen para cada tipo:

Tipo (atributo type) Atributos
QUIT none
ACTIVEEVENT gain, state
KEYDOWN unicode, key, mod
KEYUP key, mod
MOUSEMOTION pos, rel, buttons
MOUSEBUTTONUP pos, button
MOUSEBUTTONDOWN pos, button
JOYAXISMOTION joy, axis, value
JOYBALLMOTION joy, ball, rel
JOYHATMOTION joy, hat, value
JOYBUTTONUP joy, button
JOYBUTTONDOWN joy, button
VIDEORESIZE size, w, h
VIDEOEXPOSE none
USEREVENT code

pump

Procesa internamente los manejadores de evento de pygame.

pygame.event.pump(): return None

Para cada cuadro de visualización de su juego necesitará hacer alguna clase de llamada a la cola de eventos. Esta función se asegura de que su programa puede interactuar internamente con el resto del sistema operativo. Debería utilizar esta función si no está usando otras funciones de eventos en su juego, esto permitirá que pygame pueda manejar acciones internas.

Esta función no se necesita si su programa procesa eventos de manera consistente a través de otras funciones de pygame.event.

Hay varias tareas importantes que se deben realizar internamente en la cola de eventos. La ventana principal podría necesitar responderle al sistema o ser redibujada. Si usted no consulta la cola de eventos por mucho tiempo, el sistema podría interpretar que su programa está inactivo o con un error.

get

Obtiene eventos de la cola.

pygame.event.get(): return Eventlist
pygame.event.get(type): return Eventlist
pygame.event.get(typelist): return Eventlist

Obtendrá todos los mensajes de eventos y los eliminará de la cola. Si se le especifica un tipo o secuencia de tipos de evento solo esos mensajes se eliminarán de la cola.

Si solo está interesado en eventos específicos de la cola, tenga cuidado que la cola podría llenarse eventualmente con eventos en los que no esté interesado.

poll

Obtiene un solo evento de la cola.

pygame.event.poll(): return Event

Retorna un evento individual de la cola. Si la cola de eventos está vacía se retornará un evento de tipo pygame.NOEVENT inmediatamente. El evento que se retorna se eliminará de la cola.

wait

Espera por la llegada de un evento en la cola.

pygame.event.wait(): return Event

Retorna un evento individual de la cola. Esta función espera hasta que un evento llegue si es que la cola está vacía. El evento se elimina de la cola una vez que ha sido retornado. Mientras el programa está esperando el proceso dormirá en un estado de espera. Esto es importante para programas que quieres compartir los recursos de sistema con otras aplicaciones.

peek

Consulta si un tipo de evento está esperando en la cola.

pygame.event.peek(type): return bool
pygame.event.peek(typelist): return bool

Retorna True si existe algunos de los eventos solicitados esperando en la cola de eventos. Si se pasa una secuencia de tipos de eventos, se retornará True si alguno de esos eventos está en la cola.

clear

Elimina todos los eventos de la cola.

pygame.event.clear(): return None
pygame.event.clear(type): return None
pygame.event.clear(typelist): return None

Elimina todos los eventos (o de un tipo específico) de la cola. Esta función tiene el mismo efecto que pygame.event.get() excepto que no retorna nada. Puede ser ligeramente mas eficiente cuando limpia toda la cola de eventos.

event_name

Obtiene el nombre de un identificador de evento.

pygame.event.event_name(type): return string

Pygame utiliza identificadores en números enteros para representar tipos de eventos. Si quiere reportar estos valores al usuario debería convertirlos a cadenas de texto. Esta función retornará el nombre para un tipo de evento. La cadena sigue el estilo PalabrasComoTitulo.

>>> pygame.event.event_name(1)
'ActiveEvent'

set_blocked

Controla que eventos se permiten en la cola.

pygame.event.set_blocked(type): return None
pygame.event.set_blocked(typelist): return None
pygame.event.set_blocked(None): return None

El tipo de evento especificado será excluido de poder aparecer en la cola de eventos. Por defecto todos los eventos podrá colocarse en la cola. Es seguro deshabilitar un tipo de evento muchas veces.

Si se pasa None como argumento, esto producirá el efecto contrario y se permitirán todos los tipos de eventos en la cola.

set_allowed

Controla que eventos se permitirán en la cola.

pygame.event.set_allowed(type): return None
pygame.event.set_allowed(typelist): return None
pygame.event.set_allowed(None): return None

El tipo indicado será incluido para aparecer en la cola de eventos. Por defecto todos los eventos pueden colocarse en la cola de eventos. Es seguro habilitar un tipo de evento varias veces.

Si se pasa None como argumento, ninguno de los tipos de eventos podrá estar en la cola de eventos.

get_blocked

Consulta si está bloqueado de la cola un tipo de evento.

pygame.event.get_blocked(type): return bool

Retorna True si el tipo de evento dado ha sido bloqueado de la cola de eventos.

set_grab

Controla la posibilidad de compartir los dispositivos de entrada con otras aplicaciones.

pygame.event.set_grab(bool): return None

Cuando su programa corre en un entorno de ventana, este compartirá los dispositivos de mouse y teclado con otras aplicaciones que estén seleccionadas (con foco). Si su programa llama a set_grab(True), se bloquearán todas las entras de dispositivos a su programa.

Es mejor no usar esta función siempre, dado que imposibilita al usuario de hacer otras cosas en su sistema.

get_grab

Consulta si el programa está compartiendo los dispositivos en entrada.

pygame.event.get_grab(): return bool

Retorna True cuando los eventos de entrada son exclusivos de esta aplicación. Use pygame.event.set_grab() para controlar este estado.

post

Coloca un nuevo evento en la cola.

pygame.event.post(Event): return None

Esta función coloca un nuevo evento al final de la cola de eventos. Estos eventos se recibirán mas tarde que los otros eventos ya en la cola.

Se usa frecuentemente para colocar eventos pygame.USEREVENT en la cola. Aunque se puede colocar cualquier tipo de evento, si utiliza tipos de eventos de sistema se asegurará de crear los atributos por defecto con los valores adecuados.

 
traducciones/pygame/event.txt · Última modificación: 20/01/2009 a las 21:16 por hugoruscitti
Este sitio funciona sobre el motor wiki de DokuWiki.
© 2003-2008 Hugo Ruscitti