Java降低了for循环的速度,但不会减慢程序的其余部分



我正在创建一个视频游戏,我有一个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()方法。睡眠没有用…

try {
    Thread.sleep(1000);
} catch (Exception e) {
    e.printStackTrace();
}

任何想法?

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

将此添加到您的游戏程序中,其中curHealth可访问。

timer = new Timer();
timer.schedule(new TimerTask (){
    public void run() {
        curHealth = curHealth + 0.1;
    }
}, 1000);

相关内容

  • 没有找到相关文章

最新更新