LibGdx Ashley系统包含一个包signals
的包Signal
和一个界面Listener
。关于何时/为什么/如何实际使用这些文档非常不清楚。
根据文档,Signal
用于
...将事件分派给多个侦听器
和Listener
是
......用来听信号。
除此之外没有任何其他信息。有谁知道这些实际上是如何使用的?
答案 0 :(得分:0)
我从未与阿什利合作,但我想这只是一个观察者模式。您可以创建一个Signal
和.add
个对象来实现Listener
。每当signal.dispatch(myObject)
所有这些侦听器添加到该信号时都会触发receive(Signal<T> signal, T object)
。在这里,您可以访问信号以及随之发送的对象。
当你有一对多关系时,你可以使用观察者模式。一个例子可以是带轮子的方向盘。你的车轮实现了听众,方向盘有一个信号。无论何时转动方向盘,您都会向车轮“发送”信号,通知车轮转向。
如果你不理解观察者模式,我建议你先学习。从reading this开始,创建此模式的一些基本实现,直到您理解为止。