• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

与多个物体碰撞

collision 来源:hakubaa 5次浏览

我正在进行一个小球模拟,其中球与其他物体(例如矩形)相碰撞。我的主循环看起来像这样:与多个物体碰撞

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


版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)