gpt4 book ai didi

java - 基于文本的游戏中的处理时间 (Java)

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:10:11 25 4
gpt4 key购买 nike

在学习 Java 的过程中,我正在尝试开发一个基本的基于文​​本的游戏。我希望能够计算游戏中的轮数,以此作为管理某些事件节奏的一种方式。例如,可以将更衣室限制为每轮一次(在测试代码中为一秒)。小型生物可能会以更高的速度攻击或更衣室,而较大的生物可能会更麻烦。目前很好?太好了。

所以,我做了这个,并立即意识到每次 while 循环等待玩家输入命令时我都会碰到一个 block 。代码:

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 循环并发的时间/回合,向玩家显示命令提示符?

如果没有,是否有其他方法可以使这成为我还没有看到/实践过的非问题?

最佳答案

看看Concurrency tutorial .使用线程,您可以在不停止其他进程的情况下等待用户输入(并使这些其他进程同时执行 - 不是并行,而是分时执行)。

关于java - 基于文本的游戏中的处理时间 (Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15529900/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com