gpt4 book ai didi

Java 定时器重用

转载 作者:行者123 更新时间:2023-12-01 16:02:09 26 4
gpt4 key购买 nike

我目前正在尝试制作一个小型的brick-breaker游戏,以有效地使用某种形式的能力提升或奖励。我现在已经大部分实现了。但是我有一个问题。我使用 java.util.Timer 来确定通电持续的时间。最有可能的是,该加电将被多次选择(由随机数生成器)。然而,Java Timer 只能使用一次,在调用它的 cancel() 方法后,就完成了。现在,我将游戏设置为将能量提升标记为已使用,并且不再使用它。有办法解决这个问题吗?以下是选择 LongPaddle 启动时调用的方法:

public void longPaddleTime(int seconds) { //longPaddle Timer Method - gets called when the longPaddle bonus is enabled; shuts off longPaddle after a set amount of time
timerLP.schedule(new TaskLP(), seconds*1000);

}
class TaskLP extends TimerTask { //The task to be run after the timer in longPaddleTime runs out
public void run() {
longPaddle=false; //Disable LongPaddle
bonusActive=false;
LPused=true; //Mark as used
timerLP.cancel(); //Terminate the timer thread
timerLP.purge();
}
}

最佳答案

您不需要 cancel() 计时器 - Timer.schedule(TimerTask, long delay) 只会运行指定的任务一次。如果您想终止计时器正在执行的所有操作,您只需要 cancel() 计时器即可。

对于您的情况(安排一次任务),Timer 类中不需要清理。如果您有一项重复任务并且只想停止该任务,则可以调用 TimerTask.cancel() 来防止它再次发生,同时仍允许将计时器重新用于其他目的。

关于Java 定时器重用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3585435/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com