2016-11-11 2 views
0

関数を作成しました。これは27秒ごとに呼び出されます。Swift 3呼び出される関数との間の時間間隔を表す変数を更新します。

_ = Timer.scheduledTimer(timeInterval: time, target: self, selector: #selector(GameScene.method), userInfo: nil, repeats: true) 

変数timeは関数法に0.95を乗じてますが、変数の時間がまだ更新されていないが、次のように変数を呼び出すためのコードです。

+0

そのメソッドが呼び出しているかどうかを確認してください。 –

+0

どういう意味ですか?このメソッドは呼び出されていますが、変数の更新バージョンではなく、27秒ごとに呼び出されます –

+0

メソッドとそのコードを表示してください。 –

答えて

0

timeIntervalscheduledTimerが指定されていて、その予定のTimerオブジェクトのままであれば、時間を変更したい場合は、このような呼び出し関数で再度スケジュールする必要があります。

_ = Timer.scheduledTimer(timeInterval: time, target: self, selector: #selector(GameScene.method), userInfo: nil, repeats: false) 

func method() { 
    //Do your task 
    time += 0.95 //increase timer 
    //Schedule it again 
    _ = Timer.scheduledTimer(timeInterval: time, target: self, selector: #selector(GameScene.method), userInfo: nil, repeats: false) 
} 
+0

最初にタイマーを無効にする必要があります。そうしないと、各メソッド呼び出しでいくつかのタイマーが終了します。 – zisoft

+0

@zisoft正しくチェックしてください偽にリピートを設定しました ' –

+0

あなたは正しいです;-) – zisoft

0
func increaseTime() { 

    time += 0.95 // This will increase the time by 0.95 every time this function is called 

    // Then call the function again to update the time 
    _ = Timer.scheduledTimer(timeInterval: time, target: self, selector: #selector(GameScene.method), userInfo: nil, repeats: true) 

} 

定数変数を編集することができないので、あなたの変数がvarないletconstであることを確認してください。

関連する問題