2016-04-03 9 views
3

2秒後にユーザーが画面に触れた(touchesBeganの内側にあります)、addChildを試行していますが、動作しません。私は間違って何かしていますか?2秒後にaddChild

self.runAction(SKAction.sequence([SKAction.waitForDuration(2.0), SKAction.runBlock({ 
    self.addChild(self.myLabel) 
})])) 

またはそれ以上:

self.runAction(SKAction.waitForDuration(2)) { 
    self.addChild(self.myLabel) 
} 

//show myLabel after 2 seconds 
self.myLabel.position = CGPoint(x: self.frame.width/1.1, y: self.frame.height/2) 
self.myLabel.text = "0" 
self.myLabel.zPosition = 4 

self.myLabel.runAction(SKAction.sequence([SKAction.waitForDuration(2.0), SKAction.runBlock({ 
    self.addChild(self.myLabel) 
)])) 

答えて

4

問題は、アクションは、それがシーンである場合を除き、mylabelという上で実行し、そうに最後の部分を変更しないということです注:ここでは、自分がシーンまたはすでにシーンに追加されている他のノードであると仮定します。

+0

もう一つは働いていたが、私は(Xcodeので指示)いくつかのことを変更しなければなりませんでした。それは終わった: 'self.runAction(SKAction.waitForDuration(2.0)、完了:{self.addChild(self.myLabel)})' – Luiz

+0

ところで、ありがとうございます! =) – Luiz

+0

あなたは大歓迎です!私はXcodeでテストした後、私の答えを編集しました。答えがあなたに役立つなら、投票したり、受け入れたりすることを考慮してください:) – smallfinity

-1

あなたにあなたが

public func delay(delay:Double, closure:()->()) { 
    dispatch_after(
     dispatch_time(
      DISPATCH_TIME_NOW, 
      Int64(delay * Double(NSEC_PER_SEC)) 
     ), 
     dispatch_get_main_queue(), closure) 
} 

や使用をしたい、この関数を宣言することができます

delay(2.0) { 
     self.addChild(self.myLabel) 
    } 
+0

SpriteKitには行かないhttp://stackoverflow.com/a/23978854 – Whirlwind

+0

@Whirlwind申し訳ありませんが、私はそれについて忘れました。 –

関連する問題