大家好!我的物理引擎运行得非常好(感谢您的提问!),我已经准备好开始研究一些更高级的垃圾了。举个例子,我正在尝试设置我的碰撞引擎,以便在发生碰撞时可以通知任意委托。让我为您设置一个场景:
假设我们在物理模拟中有对象 A、对象 B 和对象 C。我希望能够通知代表 A 和 B 之间的冲突,并通知可能不同的代表 A 和 C 之间的冲突。
一点背景信息:我有一个已知的委托接口,我有可能为我的碰撞检测器存储状态(但不要 atm),并且有能力将状态存储在对象本身中。同样,我使用这个委托模型来处理碰撞解决方案,只需将物理引擎默认设置为所有对象的委托,允许用户在需要时更改委托。
现在,我已经尝试让每个对象存储它自己的碰撞委托,当发生碰撞时会收到通知。这不起作用,因为当对象具有相同的碰撞委托时,相同的碰撞被处理了两次。当我切换到只使用第一个对象的委托时(但是这是决定的),模拟的顺序成为一个问题。我想使用字典,但这会带来大量开销。然而,这似乎是我需要前进的方向。
所以问题来了:为了一个合适的解决方案而战至死。你将如何解决这个问题?