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

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

private ScheduledExecutorService executor = Executors.newSingleThreadScheduledExecutor(); 

但我在网上看到了人们使用的地方

 static void main(String[] args) { 

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

我想你每次玩家杀死一个怪物都可以检查这个。 也许你想听一个KillMonster事件。 您可以创建接口并在其他类中实现它。

 public interface KillMonsterEventListener { void onKillMonster (); } 

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

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

总的来说,使用Executor只需花费一些代价,因为你可以很容易地拥有一个怪物数量的计数器,并在更新标记中杀死一个怪物时修改它。 当它达到0时,玩家已经清除了该等级。 通常Executor适用于自动保存到文件等较大的操作,值得注意的是代码将在后台线程上执行。 因为你只是要查询游戏中留下的怪物数量而不是改变UI,所以应该没问题。

关于static void main(String[] args) {我不知道这是怎么回事。