Sto lavorando a un gioco di strategia a turni in Java (nel framework Android). Seguendo la struttura all'inizio di giochi Android, ho un thread di rendering e un thread dell'interfaccia utente. Il thread di rendering aggiorna ripetutamente lo stato del mondo e quindi ridisegna il mondo. Quando l'utente interagisce con lo schermo, la GUI invia Azioni al mondo (schema di comando). Ora sto aggiungendo giocatori AI, e qui è il mio piano:Come devo gestire la comunicazione tra i thread AI e il ciclo di gioco principale?
Ogni giocatore AI avrà una IA che viene eseguito su un thread separato.
Quando gli aggiornamenti mondiali su una piega AI, controlla per vedere se c'è una causa in corso. Se è così, lo esegue. Quindi chiede al giocatore di IA la sua prossima azione.
giocatore L'AI invierà la richiesta di un'azione per il filo AI, e poi tornare.
Alla fine, l'IA si presenti con un'azione e inviare di nuovo al mondo, che vedrà sul prossimo aggiornamento.
due domande:
1) Questo disegno sembrano suono?
2) Come gestisco la comunicazione da e verso il filo AI? Se ho la chiamata al thread AI world.queueAction (action), sembra che funzionerebbe, ma se il thread di rendering chiama ai.chooseAction (world) che eseguirà l'azione scegliendo sul thread render, che non è quello che voglio .
Non stai facendo la logica mondiale nel thread di rendering, vero? – BRFennPocock