2017-05-17 14 views
1

私は多くの記事を見てきましたが、それらのどれもが意味をなさないか、私の問題に関連しています。私はユーザーにノードを押すための設定時間を与えたい。設定された時間内にノードを押すことに成功すると、タイマーはリセットされます。設定時間内にノードが押されなければ、ゲームオーバーになります。Swift SpriteKit GameSceneにタイマーを追加

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { 
     let touch = touches.first! 
     if square.contains(touch.location(in: self)) { 
      moveSquare() 
      GameScene.score+=1 
      scoreLabel.text = "\(GameScene.score)" 
      } 
     } else { 
      gameOverScene() 
     } 
} 

私の質問は、これらの要件を達成するためにタイマーを設定する方法です。コードはどこに置くのですか?代わりに、タイマーの

答えて

2

使用SKActions:

let countdown = SKAction.sequence([SKAction.wait(forDuration: 5), 
            SKAction.perform(#selector(gameOver), onTarget: Self)]) 
run(countdown, withKey: "gameOverTimer") 

touchesBegan

とした場合、(これは機能gameOverは、あなたが正しいボタンが時間内に触れていない場合に呼びたい1であることを前提として)正しいノードに触れた:

removeAction(forKey: "gameOverTimer") 
+0

私は思う*これは正しいが、私はそれをメモリから書いた。私はそれを試してテストし、エラーを修正します。 –

+2

@selectorは使用されなくなりました。#selector now – Knight0fDragon

関連する問題