我目前正在开发一个简单的2D游戏库,仅供自学。
直到知道一切都按预期工作。
现在我正计划由'游戏流'(例如计时器)或实体本身触发的运动和事件。我想知道是否可以拥有像'EntityEventListener'和'EntityMotionListener'这样的自定义事件。然后我看了一下MouseListener及其父类。然后我为每个监听器写了一个监听器接口和一个这样的适配器类:
public interface AppEntityEventListener extends EventListener
{
void onCreated(Event e);
void onDeleted(Event e);
void onStepped(Event e);
void onSelected(Event e);
}
public abstract class AppEntityEventAdapter implements AppEntityEventListener
{
@Override public void onCreated(Event e) { }
@Override public void onDeleted(Event e) { }
@Override public void onStepped(Event e) { }
@Override public void onSelected(Event e) { }
}
我发现我只能将听众添加到Components
,而Entity
类不是分别来自Component
JComponent
。 / p>
我读了一些关于听众的内容,但我不知道如何处理它,因为我现在需要它们。
考虑到我现在的问题:
Entity
班级?提前致谢。
修改
我添加了你说过的所有方法。所以现在我有两个名为List
的{{1}}个对象,eventListeners
每个都有自己的添加和删除功能。
我还有一个关于迭代的问题,使用以下代码:
motionListeners
此时如何处理此事件?这是正确的方式我真的不知道......上面的代码只是直观的。
答案 0 :(得分:1)
您可以将侦听器添加到您喜欢的任何对象,前提是该对象具有允许添加(和删除)侦听器的方法。只需向对象添加addXxxListener()/removeXxxListener()
方法即可。
这些方法应该简单地向/从侦听器集合添加/删除侦听器,并且对象应该遍历此集合并在适当时调用onXxx()
方法。
答案 1 :(得分:0)
查看框架潮http://abyu.github.io/tide/是否可以为您提供帮助。使用潮流,您可以创建自己的事件,提升并处理这些事件。