在学习 Java 时,我正在尝试开发一个基本的基于文本的游戏。我希望能够计算游戏中的回合数,以此来管理某些事件的节奏。例如,更衣室可能被限制为每轮一次(在测试代码中为一秒)。小型生物可能会以更高的速度攻击或更换房间,而较大的生物可能更麻烦。目前很好?伟大的。
所以,我做了这个,并立即意识到每次 while 循环等待玩家输入命令时我都会碰到一个块。代码:
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()
所以,这是我的问题:
有没有办法我可以使用单独的方法来记录时间/回合并发到 while 循环向玩家展示命令提示符?
如果没有,是否有其他方法可以使这成为我还没有看到/实践过的非问题?