制作在给定时间间隔内自动运行的代码

Making code that runs automatically within a given interval

我有几个关于让代码在给定时间间隔内自动 运行 的问题。我正在编写一种游戏模式,它会检查玩家是否杀死了地图中的所有怪物(我有我的方法)。我想知道编写此支票的最佳方法是什么?我已经查找了一个人在 class 构造函数期间创建 ScheduledExecutorService 的方法....

private ScheduledExecutorService executor = Executors.newSingleThreadScheduledExecutor();

但是我在网上看到有人用

static void main(String[] args) {

还有一个 运行 方法来进行检查。哪个更好?我只是想每隔几秒检查一次 运行s,看看玩家是否已经清除了地图,如果他或她清除了,则进入下一阶段。

总的来说,为此使用 Executor 有点昂贵,因为你可以很容易地拥有一个怪物数量的计数器,并在更新滴答中每当怪物被杀死时修改它。当它达到 0 时,玩家已通关。通常 Executor 适用于较大的操作,例如自动保存到文件,同样值得注意的是代码将在后台线程上执行。因为你只是查询游戏中剩余的怪物数量而不是改变UI,所以应该没问题。

问候 static void main(String[] args) { 我不明白这个问题如何。

我想你可以在每次玩家杀死怪物时检查这个。也许您想收听 KillMonster 事件。您可以创建接口并在您的其他 class.

中实现它
public interface KillMonsterEventListener {
    void onKillMonster ();
}

然后在播放器中class你可以调用一个方法来调用onKillMonster()所有的事件监听器。我想你知道该怎么做。只需创建一个 KillMonsterEventListener 的列表并使用如下方法:

public void addKillMonsterEventListener (KillMonsterEventListener listener) {
    listeners.add (listener); //listeners is the list of KillMonsterEventListeners.
}