自己再現タイマーで1〜2秒の遅延を作成しようとしています。これは私がタイマーを作成する方法です:スウィフトでタイマースレッドをスリープさせるか、遅らせる
currentThread = Timer.scheduledTimer(timeInterval: 0.001, target: self, selector: #selector(Movement.updatePosition), userInfo: nil, repeats: true)
したがって、タイマは常にupdatePosition()メソッドを実行します。
if distance <= respawnDistance * 0.1 {
// Delay timer for 1 second
}
そして私は、私はこれを行うことができると考えていた:しかし、私はタイマーが数秒間遅れることがしたい、そのメソッド内のif文持つ
currentThread.invalidate()
をと1秒後に実行される別のタイマーを作成するだけで、前のタイマーの再起動につながります。しかし、現在のTimerをスリープ状態にする方法があれば、効率が悪いと思いますか?
無限ループを使用してupdatePositionメソッドを呼び出し、その中に1秒のタイマーがありますか?これは最も効率的な方法ではないかもしれません... – Munib
私は 'updatePosition'が何をするのか疑問に思っています。これが何らかのアニメーションの場合は、タイマーではなくアニメーションを使用します。 – matt
必要なものはすべてbool変数です。 –