3

ビデオ ゲームを作成していて、健康を回復する 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 になることです。Thread.sleep が機能しないなど、ゲーム全体を遅くすることなく、recoverHealth() メソッドを遅くするにはどうすればよいでしょうか。

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

何か案は?

4

2 に答える 2

6

recoverHealth別のスレッドに入れて、説明どおりに使用してくださいThread.sleep()

于 2014-03-21T04:29:19.657 に答える
3

これを、curHealth にアクセスできるゲーム プログラムに追加します。

timer = new Timer();
timer.schedule(new TimerTask (){
    public void run() {
        curHealth = curHealth + 0.1;
    }
}, 1000);
于 2014-03-21T04:44:40.223 に答える