0

我正在制作一个简单的 OpenGl 程序来绘制一些球,这些球在它们的半径halved与墙壁碰撞时会分裂,并在两个球adding在半径上碰撞时合并......
我的功能正常工作,但问题是我可以不要在同一个程序中同时添加拆分和合并。
原因:一个球撞到墙上瞬间分裂,同时两个球仍然接触,所以act_On_Collision()两个球再次合并。
因此,球永远不会破裂或合并,并且当所有球从相同的点初始化时,它们都会合并,但屏幕上什么也没有出现。在此处 下载源代码,
欢迎任何有关此的帮助/想法。

4

2 回答 2

2

您可以在拆分/合并条件中添加一些滞后。即,当分裂发生时,两个球应该首先相互移动一定距离,然后才能启用它们的合并逻辑。

或者您使用速度矢量,即只有速度进一步减小其距离的球才合并。拆分后,它们的运动矢量应该分开。

于 2013-08-11T21:25:33.133 回答
1

两个球在与墙壁接触时永远不会结合。所以你可以使用那个条件。当两个球接触而不接触墙壁时,它们将加入。

于 2014-04-11T10:40:42.077 回答