制作在给定时间间隔内自动运行的代码
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.
}
我有几个关于让代码在给定时间间隔内自动 运行 的问题。我正在编写一种游戏模式,它会检查玩家是否杀死了地图中的所有怪物(我有我的方法)。我想知道编写此支票的最佳方法是什么?我已经查找了一个人在 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.
}