Quindi non ero sicuro di come strutturare questo titolo, sentiti libero di modificarlo.
La mia domanda è:
Quando ho un Game Loop, ho 3 blocchi principali. Gestisci gli eventi, aggiorna lo stato del gioco e disegna.
Diciamo per esempio che controllo gli eventi di tastiera / mouse e voglio spostare il mio carattere quando i pulsanti sono premuti.
Ogni volta che si verifica l'evento KEYDOWN
, dovrei chiamare immediatamente Player.move
?
O dovrei alternare move_left/move_right bools
e quindi chiamare Player.move
quando sono nel blocco di stato del gioco di aggiornamento.
Mi chiedevo perché, ad esempio, una funzione esegue un lungo algoritmo e la chiamo quando si verifica un evento, chiamando la funzione ci vorrà del tempo, e nel frattempo potrei premere più pulsanti / eventi. Penso che perderò alcuni di quegli eventi perché in quel momento la funzione algitmica stava scorrendo.
Oppure, posso attivare o disattivare un bool quando si verifica l'evento, e dopo aver controllato TUTTI gli eventi, eseguo funzioni basate sui bool.
PS: sentiti libero di modificare questo post in una domanda più costruttiva.