2016-08-16 4 views
1

スウィフト2で3秒後に関数を実行しようとしています。これは、2迅速でスプライトキットのゲームで、嘆願は、これを行う方法を教えて...3秒後にスウィフト2を実行する

呼び出す関数は次のように解決しようこの self.adjustScore()

EDIT、感謝googeページ4

のように見えます
 let triggerTime = (Int64(NSEC_PER_SEC) * 1) 
      dispatch_after(dispatch_time(DISPATCH_TIME_NOW, triggerTime), dispatch_get_main_queue(), {() -> Void in 
       self.adjustScore() 
      })   
    }) 
+0

SKAction.waitForDurationSKAction.runBlockの組み合わせを使用して、ユーザーの代わりにセレクタ –

+0

使用 'NSTimer'を実行することができます。 – Khundragpan

+0

質問を編集して正解を表示しないでください。代わりに自分の質問に答える必要があります。 – penatheboss

答えて

2

これを試してみてください:

let time = dispatch_time(DISPATCH_TIME_NOW, Int64(3.0 * Double(NSEC_PER_SEC))) 
dispatch_after(time, dispatch_get_main_queue()) { 
    self.adjustScore() 
} 
4

通常、私は上記の答えをdownvoteだろうが、 OPは質問タイトルにSpriteKitと指定していませんでした。 SpriteKitでは、NSTimersまたはディスパッチタイマーを使用したくない場合があります。これは、シーンを一時停止すると、これらのタイマーを一時停止しないためです。代わりに、所望の効果を達成するために

self.runAction(SKAction.sequence([SKAction.waitForDuration(3),SKAction.runBlock({[[unowned self] in self.adjustScore()})]) 
+1

正しいSpriteKit方法のためにSpriteKit –

+0

Upvoteを使用する場合、これは正しいコードです。 – crashoverride777

関連する問題