Ich versuche, ein einfaches textbasiertes Spiel zu entwickeln, während ich Java lerne. Ich möchte Runden im Spiel zählen können, um bestimmte Ereignisse zu steuern. Zum Beispiel könnte die Umkleidekabine auf einmal pro Runde (eine Sekunde, im Testcode) begrenzt werden. Eine kleine Kreatur könnte Räume mit einer höheren Rate angreifen oder verändern, während eine größere Kreatur umständlicher sein könnte. Gut soweit? Groß.Bearbeitungszeit in einem textbasierten Spiel (Java)
Also kochte ich das auf und erkannte sofort, dass ich jedes Mal einen Block schlagen würde, wenn die while-Schleife darauf wartete, dass der Spieler einen Befehl eingab. Code:
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()
So, hier ist meine Frage:
Gibt es eine Möglichkeit ich eine separate Methode verwenden, um Zeit log/rundet gleichzeitig auf die while-Schleife den Spieler mit einer Eingabeaufforderung zu präsentieren?
Wenn nicht, gibt es eine andere Möglichkeit, dies zu einem Nicht-Problem zu machen, das ich gerade noch nicht sehe/praktiziere?
Ich nehme an, Oracle Tutorial wäre ein sinnvoller Ausgangspunkt gewesen.Up-Voting sobald ich den Ruf habe. – eenblam