BallDemo クラスの「bounce」メソッドを変更して、ユーザーがパラメーターを介して跳ねるボールの数を選択できるようにする必要があります。コレクションを使用してボールを格納する必要があり、ボールはデフォルトのキャンバスの上部に沿って一列に配置する必要があります。また、最後のボールがキャンバスの最後に到達すると、ボールは消去されます。draw、move、および erase メソッドに配列リストと for ループを使用する必要があることはわかっていますが、それ以外は行き詰まっています。これは私がこれまでに持っているものです:
/**
* Simulates a chosen number of specific balls bouncing.
*/
public void bounce(int amount)
{
int ground = 400; // position of the ground line
myCanvas.setVisible(true);
// draw the ground
myCanvas.drawLine(50, ground, 550, ground);
***ArrayList<BouncingBall> balls = new ArrayList<BouncingBall>();
for(int index; index < amount; index++)
{
BouncingBall ball = new BouncingBall(0, 0,***
// make them bounce
boolean finished = false;
while(!finished)
{
myCanvas.wait(50); // small delay
ball.move();
ball2.move();
// stop once ball has travelled a certain distance on x axis
if(ball.getXPosition() >= 550 && ball2.getXPosition() >= 550)
finished = true;
}
ball.erase();
ball2.erase();
}
}
現在のプログラムは、最初はパラメーターがなく、2 つのボールがバウンドするようにプログラムされていたため、2 つのボールがバウンドするように設定されています。ArrayList と for ループの行は私が追加したものですが、そこに行き詰まっています。また、デフォルトのキャンバスの幅は 600、高さは 500 です。