小惑星がスクリーンの上端からランダムxの位置でスポーンされていたLibGDXでゲームを作っています。小惑星が画面の下端を残すと、小惑星は徐々に0.1fの速度増分で移動します。再利用するプールに送信されます。私が持っている問題は、しばらくしてプールから来た小惑星の速度が異なることです。私はすべての小惑星が同じ緩やかな速度で動くようにしたい。ここプールから来るオブジェクトで同じ徐々に速度を増やす方法はありますか?
が更新され、私の小惑星クラスのメソッドをリセットします。
public void update(float delta){
y -= speed * delta;
speed += 0.1f;
}
@Override
public void reset() {
// place asteroid at random x position
x = MathUtils.random(minSpawnPoint, maxSpawnPoint);
// place asteroid above screen edge
y = Constants.CAMERA_HEIGHT + Constants.ASTEROID_MAX_SIZE;
}
xとyの位置のようにどこかの速度をリセットする必要があります。リセットメソッドのどこかにspeed = initialを入れます。私はそれが意図的なのかどうか分からないが、あなたの小惑星に加速があるように、更新刻みごとに速度を増やしている。 – Barodapride
小惑星は同じ速度で加速しているはずです。私が持っている問題は、彼らが異なる加速率を持っているということです。 – Harry
あなたがプールから再利用する小惑星は、スピードをどこにでもリセットすることがないので、初期速度が速くなります。 – Barodapride