簡體   English   中英

Java減慢循環而不減慢程序的其余部分

[英]Java slow down for loop without slowing down rest of program

我正在創建一個視頻游戲,我有一個可以恢復健康的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()

將其添加到您可以訪問curHealth的游戲程序中。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM