我一直在用 java 编写一个基于文本的视频游戏(我是 java 新手,顺便说一句),它没有我一直希望的性能,特别是语音。我希望文本看起来好像这个人在说话(我不希望它一次出现,只是一个字符一个字符地出现)。我用这段代码实现了效果:
void speak(String speak){
for(int x = 0; x < speak.length(); x++){
System.out.print(speak.charAt(x));
pause(talkSpeed);
}
}
talkSpeed 是对象说话的速度。pause 是我为使 Thread.sleep 更容易而制作的函数。一直懒得写try catch。我对这段代码的唯一问题是它不能非常顺利地打印到控制台。它看起来很生涩,好像有点滞后。看起来它是逐字打印世界而不是逐字打印。我不明白为什么,这是一段相当简单的代码。也许是暂停,我应该只使用 Thread.sleep。另外,我想知道如何使光标跟随文本。
或者我应该用 C++ 重写它来获得性能提升?我知道大约相同数量的 C++
void pause(double time){
long y = (long) (1000 * time);
try {
Thread.sleep(y);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
有人要求提供暂停功能的代码,所以在这里