与多个物体碰撞
我正在进行一个小球模拟,其中球与其他物体(例如矩形)相碰撞。我的主循环看起来像这样:与多个物体碰撞
while (true) { entities.update(); // update all entities (e.g. ball, rectangles), move them
updateCollision(); // check for collision and inform colliding objects
}
在碰撞涉及球和只有一个对象的情况下,一切正常工作。球根据实施的物理学反弹。然而,当碰撞系统检测到球与多个矩形同时碰撞时,它不起作用。为什么?当球击中矩形时,它会改变方向并且没关系。但是当球击中两个矩形时,它的变化方向是与第一个矩形碰撞的结果,然后由于与第二个矩形碰撞而再次改变方向。所以当这两个长方形非常接近并且球落下并同时击中它们时,球的方向会改变两次,所以最后它根本不会改变。这一切都发生在updateCollision()函数的循环中的一次迭代中。我该如何改进这种机制才能正常工作?我会欣赏任何想法。
回答:
也许你应该同时更新你的速度。当您将速度表示为向量时,您可以计算所有碰撞更新,然后将这些更新线性组合到单个更新中。
看到这个职位,并采取到你的问题:Ball to Ball Collision - Detection and Handling
以上是 与多个物体碰撞 的全部内容, 来源链接: utcz.com/qa/260024.html