圆角碰撞行为

3
我正在处理一个二维滚动弹球的项目。我可以检测到弹球撞击盒子的角落时,但是不知道它撞击角落后应该有什么行为。我需要找出如何重新定位弹球,以使其不重叠框。对于盒子与盒子的碰撞,只需将盒子设置在一起即可解决问题,但对于圆形和盒子,我不知道应将弹球移动到哪里,才能看起来更加逼真。
我并不是在询问它如何反弹。我对三角函数有很好的理解。当你将弹球移向盒子时,它最终会与盒子重叠。我需要知道如何让它们不再重叠,同时保持逼真的外观。它不需要反弹(假设弹球具有无限质量)。

你是否有三角函数的基本理解? - Benjamin Gruenbaum
2
你是在问“当弹珠撞到角落时会如何反弹?”吗? - Oliver Charlesworth
1个回答

1

请仔细阅读维基百科上的这篇文章:弹性碰撞

您需要为2D对象在任何给定表面点创建表面法线,如果您的盒子是完美正方形,则会出现问题,因为尖锐的边缘没有法线。您将不得不对角落情况(无意冒犯)进行特殊处理,并给它们表面法线,这些表面法线是连接在角落处的两条线的法线的平均值。

基本上,使用向量。


谢谢您的建议,但我不需要让弹珠“弹起来”。我只需要它不重叠在方块上,这意味着将其移动到一个位置,使得弹珠接触到方块但不重叠。 - Thomas Nattestad
那是一个不同的问题。如果你能够检测到碰撞,为什么不能检测到角落的碰撞呢?你可能需要重新思考一下你的代码。 - Blender

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接