我现在正在做一个Java游戏,我有一个整数,它代表玩家的健康,从100开始,每次它与敌人相交时,它的生命值减少5,然而,它每秒检查60次,所以,它迅速减少,因为在那一秒,玩家正在与敌人接触,因此当它接触敌人时,它每秒钟减少300次。我想知道是否有可能阻止一个int的值改变大约3-5秒?我不知道这是否可行,我试过了:
try {
Thread.sleep(4000);
} catch(InterruptedException ie) {
Thread.currentThread().interrupt();
}
然后可以在那之后添加int,但这只会让整个程序停止4秒,在那个时候还有其他事情在进行。
发布于 2013-06-15 16:15:52
"Thread.sleep导致当前线程暂停执行“-如果你不想停止整个线程,就不要使用它。
您可以创建一个负责更改int
值的线程,然后为了执行定期任务,您可以使用ScheduledExecutorService#scheduleAtFixedRate。例如:
Runnable myRunnable = new Runnable() {
public void run() {
//...
}
};
ScheduledExecutorService ex = Executors.newScheduledThreadPool(1);
ex.scheduleAtFixedRate(myRunnable , INITIAL_DELAY, PERIOD, TIMEUNIT);
现在,您可以决定线程何时运行以及运行多长时间。然而,我建议你重新考虑你的设计,以免为时已晚,你的代码会变得一团糟。
https://stackoverflow.com/questions/17121444
复制相似问题