Sto sviluppando un gioco usando il polling per il metodo di input. Tuttavia, ora che sto approfondendo i menu di gioco e altri componenti dell'interfaccia utente, sto scoprendo che probabilmente mi piacerebbe avere input guidato dagli eventi. Forse anche avendo entrambi, usando event driven per l'interfaccia utente e polling per l'input "world". Sono curioso di sapere quale sia il modo migliore per andare.
Sto definendo il polling come: ogni ciclo di aggiornamento controllo quali tasti vengono premuti, dove si trova il mouse, i pulsanti premuti, quindi li eseguo e eseguo le azioni in base alle informazioni raccolte.
Sto definendo un evento guidato come: eventi basati su interrupt, quando si verifica un evento e viene attivato un interrupt e viene eseguito un blocco di codice basato sull'evento.
Pensi che sia meglio andare su tutti gli eventi, tutti i sondaggi o una combinazione di entrambi è accettabile? Se hai vantaggi e svantaggi per entrambi, ti preghiamo di elencarli. Grazie.
MODIFICARE
Il gioco è basato su Java / OpenGL, quindi verrà rilasciato su Windows / Mac / Linux. La possibilità di estenderlo ai dispositivi mobili è bassa. Il gioco è in stile RTS, 3D in terza persona.
MODIFICA 2
Non sono ancora del tutto soddisfatto del modo in cui ho implementato questo, ma ciò a cui mi sto muovendo è catturare eventi nella mia interfaccia utente e se non sono gestiti da nessuno dei miei componenti dell'interfaccia utente, trasmetto l'evento al "Mondo" per la raccolta / selezione. Qualcosa di simile a:
@Override
private boolean handleEvent(Event event) {
if(hud.handleEvent(event)) {
return true;
}
return WORLD.handleEvent(event);
}
In questo modo non ottengo clic che perdono attraverso l'interfaccia utente per selezionare gli oggetti dietro i pulsanti e cosa no.
Attualmente i controlli della mia fotocamera sono ancora basati sul polling, e per ora sembra funzionare, ma potrei aggiornarlo in seguito.
Apprezzo tutte le risposte, scusa se ne ho potuto scegliere solo una!