Tag: 多次发送

在C#中优化多个调度通知算法?

抱歉标题,我想不出更好的方式来描述问题。 基本上,我正在尝试在游戏中实现碰撞系统。 我希望能够注册一个“碰撞处理程序”来处理可以转换为特定类型的两个对象(按任意顺序给出)的任何碰撞。 因此,如果Player : Ship : Entity和Laser : Particle : Entity ,以及(Ship, Particle)和(Laser, Entity)处理程序被注册而不是(Laser, Player)的碰撞,则应通过参数通知两个处理程序按正确的顺序, (Laser, Laser)的碰撞应该只通知第二个处理程序。 一个代码片段说了千言万语,所以这就是我现在正在做的事情(naieve方法): public IObservable<Collision> onCollisionsOf() where T1 : Entity where T2 : Entity { Type t1 = typeof(T1); Type t2 = typeof(T2); Subject<Collision> obs = new Subject<Collision>(); _onCollisionInternal += delegate(Entity obj1, Entity obj2) { if (t1.IsAssignableFrom(obj1.GetType()) && t2.IsAssignableFrom(obj2.GetType())) […]