La funzione event.set_blocked() di Pygame
Pygame permette di sospendere un evento tramite la funzione event.set_blocked()
event.set_blocked(x)
Dove l'argomento x è l'identificativo dell'evento o una lista di identificativi degli eventi da bloccare .
Se gli eventi sono più di uno, vanno messi tra parentesi quadre e separati tra loro da una virgola.
Gli eventi bloccati non sono più seguiti da pygame nella gestione degli eventi.
Nota. Possono comunque essere sbloccati dalla funzione event.set_allowed(x). Dove x è l'evento o la lista degli eventi.
Un esempio pratico
In questo script disattivo l'evento MOUSEMOTION ossia il movimento del mouse sulla tastiera
pygame.event.set_blocked(pygame.MOUSEMOTION)
In questo script disattivo due eventi contemporaneamente.
pygame.event.set_blocked([pygame.KEYDOWN, pygame.MOUSEMOTION])
Per verificare se un evento è bloccato uso la funzione event.get_blocked()
pygame.event.get_blocked(pygame.KEYDOWN)
1
La funzione restituisce
- 1 se l'evento è bloccato
- 0 se l'evento è attivo
Per riattivare l'evento sbloccato posso utilizzare la funzione event.set_allowed()
Ad esempio riattivo l'ascolto della pressione dei tasti sulla tastiera del PC.
pygame.event.set_allowed(pygame.KEYDOWN)
Per riattivare entrambi gli eventi bloccati
pygame.event.set_allowed([pygame.KEYDOWN, pygame.MOUSEMOTION])
Per riattivare tutti gli eventi con un unico comando posso usare il valore None
event.set_allowed(None)
Quest'ultima forma comunica a pygame di non disattivare nessun evento. Pertanto, li riattiva tutti.
E così via.