我正在创建一个视频游戏,并且有一个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();
}


有任何想法吗?

最佳答案

recoverHealth放入单独的线程中,并按照您的描述使用Thread.sleep()

10-04 10:45