ゲームで使用する便利なソリューションがあります。実際に Timer クラスを作成しました。
public class Timer
{
protected float remaining;
protected float interval;
public Timer(float interval)
{
this.interval = interval;
this.remaining = interval;
}
public boolean hasTimeElapsed() { return (remaining < 0.0F); }
public void reset() { remaining = interval; }
public void reset(float interval) {
this.interval = interval;
this.remaining = interval;
}
public void update(float delta) { remaining -= delta; }
}
Timer を特定の期間に初期化し、update(delta) メソッドですべての Timer に対して Timer.update(delta) を呼び出し、Timer.hasTimeElapsed() を呼び出して経過したタイマーがあるかどうかを確認します。
あなたの場合、敵は順番にスポーンされるため、Timer オブジェクトは 1 つだけ必要です。敵をスポーンしたら、タイマーをリセットし (必要に応じてスポーン期間を変更します)、タイマーが再び作動するのを待ちます。
また、Timer オブジェクトを変更して、タイマーがオフになったときにコールバックをトリガーするために、サブジェクト-オブザーバー パターンを使用することもできます。これは、時限イベントがいつ発生するかを知る必要があるロジックがあるが、ロジックがデルタ時間に直接アクセスできない場合に役立ちます。