Próbuję opracować podstawową grę tekstową, ponieważ uczę się języka Java. Chciałbym móc liczyć rundy w grze jako sposób zarządzania tempem określonych zdarzeń. Na przykład szatnie można ograniczyć do jednej na rundę (sekundę, w kodzie testowym). Małe stworzenie może zaatakować lub zmienić pokoje na wyższym poziomie, podczas gdy większe może być bardziej uciążliwe. Dobry do tej pory? Wspaniały.Czas obsługi w grze tekstowej (Java)
Więc ugotowałem to i natychmiast zdałem sobie sprawę, że uderzę w blok za każdym razem, gdy pętla while czeka, aż gracz wprowadzi polecenie. Kod:
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()
Tak, tu jest moje pytanie:
Czy istnieje sposób mogę stosować oddzielną metodę do czasu log/zaokrągla współbieżne do pętli podczas prezentacji gracza z wiersza polecenia?
Jeśli nie, czy jest inny sposób, aby uczynić to nie problem, którego jeszcze nie widzę/praktykowałem?
Przypuszczam, że tutorial Oracle byłby rozsądniejszym miejscem do rozpoczęcia.Wcześniejsze głosowanie, kiedy mam reputację. – eenblam