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