Sto provando a elaborare un gioco basato sul testo di base mentre sto imparando Java. Mi piacerebbe poter contare i giri del gioco come mezzo per gestire il ritmo di determinati eventi. Ad esempio, gli spogliatoi potrebbero essere limitati a una volta per round (un secondo, nel codice di test.) Una piccola creatura potrebbe attaccare o cambiare stanze a una velocità maggiore, mentre una più grande potrebbe essere più ingombrante. Bene finora? Grande.Gestione del tempo in un gioco basato su testo (Java)
Così, ho preparato questo e ho subito capito che avrei colpito un blocco ogni volta che il ciclo di attesa ha aspettato che il giocatore inserisse un comando. Codice:
private void startPlaying() {
//declare clock/round variables.
int lastRound = 0;
int currentRound = 0;
long lastTime = System.currentTimeMillis();
long currentTime;
while (player.getIsPlaying()){
//Clocking
currentTime = System.currentTimeMillis();
if ((lastTime + 1000) < currentTime) {
lastTime = currentTime;
lastRound = currentRound;
currentRound++;
System.out.println("Current round:\t" + currentRound + "\tCurrent time:\t" + currentTime); //EDIT:NOTE: This is just a test line to observe the loop.
}//end if (Clocking)
Command command = new Command();
String[] commandString = command.setAll(); //Array gets parsed elsewhere.
player.doCommand(commandString);
//Class Player extends Pawn extends Actor; Pawn has most command methods.
}
finishPlaying();
}//END STARTPLAYING()
Quindi, ecco la mia domanda:
C'è un modo ho potuto utilizzare un metodo separato per registrare il tempo/arrotonda concomitante al loop mentre presenta il giocatore con un prompt dei comandi?
In caso contrario, c'è un modo diverso per rendere questo un non-problema che non sto ancora vedendo/praticato in ancora?
Suppongo che il tutorial di Oracle sarebbe stato un punto di partenza più ragionevole.Up-voting una volta che ho la reputazione. – eenblam