1

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つのインスタンスを渡すにはどうすればよいですか?

4

1 に答える 1

3

うまくいくと仮定するとballBallCollision()、おそらく各ボールを他のすべてのボールと衝突させたいと思うでしょう。つまり、0と1、0と2、1と2などです。これには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)、各ペアを2回チェックしないことに注意してください(0を1に対してチェックしますが、1を0に対してチェックしません)。

于 2012-05-01T17:25:28.990 に答える