在您指出这个问题还有其他答案之前,我已经查看了这个问题或类似问题的大多数其他答案,但我还没有找到我需要的解决方案。
基本上我想要做的就是当圆/球与矩形碰撞时,我想确定碰撞发生在矩形的哪一侧。我想找出这一点,以便我可以执行更逼真的物理效果,例如,如果球击中矩形的顶部,则仅将其反转为 Y 速度……而不是两者兼而有之。
我已经尝试比较球和矩形的 X 和 Y 位置,甚至它们两个边界框的位置......即使球的底部与矩形顶部相交也进行测试......使用'if ball .boundingBox.Bottom >= rectangle.boundingBox.Top'。
我附上了一张图片来展示我想要达到的目标......以防万一它有点混乱,因为它没有详细......如果球从一侧进入,红色看起来像 v 是路径,我希望撞击时的运动以相反的方式行进,但这取决于矩形的一侧,我将不得不改变球速度的哪个分量......
仅供参考,我也看过向量归一化……我以前没有使用过它,所以请原谅我,如果可以用这个来解决这个问题……
非常感谢阅读
编辑因为我很匆忙,我使用了不同的图像代替......这仍然显示了我试图实现的行为,因为图中显示的物理是我希望球与另一个碰撞时的行为侧面......图像链接:http : //codeincomplete.com/posts/2011/6/12/collision_detection_in_breakout/bounce2.v283.png