OpenGL的。球与球碰撞

时间:2012-05-01 17:03:11

标签: collision-detection

在OpenGL中创建概率机器。

Ball ballArray[5];

while(elapsed > 0)
{
     timeStep = m_Timer.getSeconds();
     for(int i = 0; i < NUMBER_OF_BALLS; ++i)
     {
        ballArray[i].updateBall(timeStep); // where collision with pegs dealt 
        //ballArray[0].ballBallCollision(timeStep,ballArray[0],ballArray[1]);
      }
      Redraw();
}

我无法让注释线工作:( 如何传递2个球的实例

1 个答案:

答案 0 :(得分:3)

假设ballBallCollision()有效,你可能想要将每个球与其他球碰撞,即0与1,0与2,1与2等。你需要第二个循环。

我首选的解决方案是创建一个循环,遍历所有剩余的球,如下所示:

for(int i = 0; i < NUMBER_OF_BALLS; ++i)
{
   ballArray[i].updateBall(timeStep); // where collision with pegs dealt 
   for(int j = i + 1; i < NUMBER_OF_BALLS; ++j)
   {
      ballArray[i].ballBallCollision(timeStep,ballArray[i],ballArray[j]);
   }
}

请注意,由于我们从i + 1开始,我们永远不会让球相互碰撞(0与0),我们不会检查每对两次(我们检查0对1,但不是1再次对抗0。)