我正在制作一个简单的OpenGl程序来绘制一些球,当它们以半径halved
碰撞到墙壁时会分裂,当两个球碰到adding
半径时合并...... <登记/>
我的功能正常工作,但问题是我无法在同一个程序中添加分割和合并。
原因:一个球在瞬间碰撞到墙壁,同时瞬间两个球都是仍然保持联系,所以act_On_Collision()
再次合并两个球
因此球永远不会破裂或合并,并且当所有球从相同点初始化时它们全部合并但是没有出现在screan上。下载源代码here
所以对此有任何帮助/想法都很受欢迎。
答案 0 :(得分:2)
您可以在拆分/合并条件中添加一些滞后。即当分裂发生时,两个球应首先相互移动一定距离,然后才能启用它们的合并逻辑。
或者你使用速度矢量,即只有速度进一步减少距离合并的球。分割后,它们的运动矢量应该分开。
答案 1 :(得分:1)
两个球在与墙壁接触时永远不会加入。所以你可以使用那个条件。当两个球接触而不与墙壁接触时,它们将会加入。