我需要为学校制作一个简单的“战略游戏模拟器”。为此,我需要制作一个事件调度程序(事件循环),它将事件发送给注册方。比如我在 map 上有资源。一个事件是“位置 1 的资源耗尽”。一个“玩家”对该事件感兴趣。
我将如何创建调度员(并为一个特定事件注册一个玩家)。另外,调度程序如何检查事件?它只是简单地执行类似 if(resourceLocation1.getNoResource()==0) trigerEvent();
的操作,还是有其他更优雅的方法。
我使用事件监听器(主要是在 ActionScrip3 中),但从未制作过自定义事件和自定义事件调度程序。感谢您提供任何帮助,包括指向某些教程或示例代码的一些链接。
如果我不清楚我在搜索什么,请告诉我,我会尽力解释得更好
谢谢。
最佳答案
您的 EventDispatcher
不需要检查每个可能的条件并通知所有可能的监听器。只需通知为某种类型的事件注册的监听器。
注册 Player
以根据游戏事件得到通知
eventDispatcher.register(player, Events.RESOURCE_DEPLETION_EVENT);
然后你的Resource
会在资源达到0
时提供一个事件
class Resource {
public void deplete(int amount) {
this.amount -= amount;
if (this.amount <= 0)
eventDispatcher.notify(this, Events.RESOURCE_DEPLETION_EVENT);
}
}
否则,您将以大量包含逻辑的事件循环结束,这会消耗性能并且难以调试。
关于java - Java 中的事件调度程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8202383/