我正在创建一个视频游戏,我有一个可以恢复健康的for循环
public void recoverHealth() {
if (curHealth < finalHealth) {
for (double i = 0; i < finalHealth; i = i + 0.1) {
curHealth = curHealth + 0.1;
System.out.println("health: " + curHealth);
}
}
}
但问题是java经历了这么快,它在游戏开始之前从0到20。如何在不降低整个游戏速度的情况下减慢recoverHealth()方法,如Thread.sleep不起作用..
try {
Thread.sleep(1000);
} catch (Exception e) {
e.printStackTrace();
}
有什么想法吗?
答案 0 :(得分:5)
将recoverHealth
放入单独的帖子中,并按照您的描述使用Thread.sleep()
。
答案 1 :(得分:3)
将此添加到您可以访问curHealth的游戏程序中。
timer = new Timer();
timer.schedule(new TimerTask (){
public void run() {
curHealth = curHealth + 0.1;
}
}, 1000);