我的问题有点抽象,为了让我更清楚,我试着解释它。
假设我有5个不可移动且具有静态位置的物体。 我的主要对象,不是静态的,并且与其中一个对象相交,然后我想知道并显示对此的响应。所以我的结论是迭代所有这些对象并计算它们的交叉点。但是,如果我没有其中的5个对象呢?可以说我有100个。然后更快地将布尔值绑定到主对象,当对象移动时为true,否则为true。并且只在布尔值为真时计算交叉点?
我想到的另一个选项是不断计算所有物体之间的距离,当距离较短时,则在测试交叉点之前。因此,如果一个物体移开我只计算距离,但如果它接近我必须计算距离和的交点。
答案 0 :(得分:2)
通常我将对象分层,以便以不同方式处理静态(非移动)和动态(移动)。
这真的取决于你想要诚实地做什么,但处理这个问题的最佳方法是构建所有可碰撞几何体的BSP,并使用它来处理碰撞而不是对所有对象进行线性搜索。
您将使用布尔方法在主要对象不移动的帧上节省处理时间,但老实说,它不是一个永久的解决方案。