「bikes」リストの1つのオブジェクトにブール値のisBoostingが含まれている場合、drawLine()をより高速にしようとしています。リストに2台の自転車が含まれていて、その結果、片方の自転車だけが「isBoosting」の場合、両方の自転車がスピードアップしているように見えます。誰かがその理由について考えを持っていますか?オブジェクトにisBoostingのtrueの値が含まれていない場合、スレッドの「移動」を遅くするべきではありませんか?
foreach (LightBike b in bikes) //draw bikes
{
if (b.isBoosting && b.boostCounter > 0) //player is boosting
{
Thread.Sleep(GAME_SPEED - 5);
b.boostCounter--;
if (b.boostCounter == 0)
{
b.isBoosting = false;
b.boostCounter = 20;
}
}
else
{
Thread.Sleep(GAME_SPEED);
}
canvas.DrawLine(new Pen(b.color, BIKE_SIZE) { EndCap = System.Drawing.Drawing2D.LineCap.Square }, b.location, b.getNextLocation());
}