私はタイマーを動かして画面をタッチすると、「プレイヤー」(中央の円)を増やそうとしています。SpritekitでNSTimerを使ってアクションをどのようにトリガーしますか?
タイマーが0秒を超えると、サイズが大きくなります。タイマーが3秒以上になると、元のスケールサイズに減少し、タイマーが7秒以上になるとリセットされ、これが永久に繰り返されます。
私は間違っていますか?
import SpriteKit
class GameScene: SKScene {
var Center = SKSpriteNode()
var Player = SKSpriteNode()
var timer = NSTimer()
var seconds = 0
override func didMoveToView(view: SKView) {
Center = SKSpriteNode(imageNamed: "Center")
Center.size = CGSize(width: 80, height: 80)
Center.position = CGPoint(x: CGRectGetMidX(self.frame), y: CGRectGetMidY(self.frame))
self.addChild(Center)
Player = SKSpriteNode(imageNamed: "Player")
Player.size = CGSize(width: 80, height: 80)
Player.position = CGPoint(x: frame.size.width/2, y: frame.size.height/2)
self.addChild(Player)
}
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
timer = NSTimer.scheduledTimerWithTimeInterval(4.0, target: self, selector: #selector(GameScene.playerScaleUp), userInfo: nil, repeats: true)
}
func playerScaleUp(){
if seconds > 0{
Player.runAction(SKAction.scaleBy(4, duration: 2))
}
}
func playerScaleDown(){
if seconds > 3{
Player.runAction(SKAction.scaleBy(-4, duration: 2))
}
}
func resetScale(){
if seconds > 7{
timer.invalidate()
}
}
override func update(currentTime: CFTimeInterval) {
}
}
ありがとうございました!トップマン。 –
@ddramondあなたは歓迎です:)この回答があなたの問題の解決に役立つ場合は、それを合格とマークしてください。これは[this](http://stackoverflow.com/help/accepted-answer)を読むと便利です。 – Whirlwind