阻止int增加或减少一段时间

时间:2013-06-15 07:59:43

标签: java int

我目前正在开发一款Java游戏,我有一个代表玩家健康状况的int,从100开始,每次与敌人交叉时生命值降低5,但是,它检查了60次一秒钟,因此,它迅速减少,因为那一秒,玩家正在与敌人接触,因此它每秒下降300,它正在接触它。我想知道是否有可能阻止int的值改变大约3-5秒?我不知道是否可能,我试过这个:

try {
   Thread.sleep(4000);
} catch(InterruptedException ie) {
   Thread.currentThread().interrupt();
}

然后可以在之后添加int,但这只会使整个程序停止4秒,并且当时还有其他事情发生。

1 个答案:

答案 0 :(得分:1)

Thread.sleep导致当前线程暂停执行” - 如果您不想停止整个线程,请不要使用它。

您可以创建一个负责更改int值的线程,然后为了执行定期任务,您可以使用ScheduledExecutorService#scheduleAtFixedRate。例如:

Runnable myRunnable = new Runnable() {
    public void run() {
        //...
    }
};

ScheduledExecutorService ex = Executors.newScheduledThreadPool(1);
ex.scheduleAtFixedRate(myRunnable , INITIAL_DELAY, PERIOD, TIMEUNIT);

现在您可以决定何时运行线程以及运行多长时间。但是,我建议您在为时已晚之前重新考虑您的设计,并且您的代码会变得混乱。