私はこのコードに若干の相違がありますが、私のコードは少し違っていると思いますが、ほとんど終了していると感じています。ランダムな開始位置ボールのために衝突を避ける
私の目標は、最初に衝突することなく、900x600キャンバスに円をスポーンすることです。ボールの量は、これまでに100
私の方法の最大値まで、ユーザによって指定されています。彼らは場合に失敗した場合、それだけでボールを作成しません除い
startCounter = 8;
balls = new ArrayList<>();
for (int i = 0; i < amount; i++) {
diameter = random.nextInt(30) + 10 + diameterRange; //generate diameter value for ball
startCounter += diameter + 25; //stop balls from spawning on top of each other
BouncingBall ball = makeBall(startCounter, diameter, i);
if (Physics.Collision(ball, balls)
|| ball.getXPosition() > 850 || ball.getYPosition() > 550)
{
continue; //avoid starting collisions
}
balls.add(ball);
}
は現在、これはほとんど、完璧に動作しますその結果、ユーザーが指定するよりもボールが少なくなります。
私はi--を追加しようとしました。 if文の内容と同じですが、これはうまくいかず、ボールはこの場合誤って生成されるようです。
感謝:) whileループに
私は(索引)がまだ増加しているために、量を増やすか、またはwhileループに変更する方が良いでしょう。 – IddoE