Sprite kit 如何使用Swift在精灵套件游戏中创建NSTimer?
在单视图控制器应用程序中,可以使用:Sprite kit 如何使用Swift在精灵套件游戏中创建NSTimer?,sprite-kit,xcode8,swift4,Sprite Kit,Xcode8,Swift4,在单视图控制器应用程序中,可以使用: Foundation.Timer.scheduledTimer(timeInterval: 0.1, target: self, selector: #selector(GameViewController.updateFunction), userInfo: nil, repeats: true) 但是,当您在Spritekit游戏中使用该代码时,它会出现错误并且不起作用 我能用什么来工作呢?只需像这样启动计时器: class GameScene: SK
Foundation.Timer.scheduledTimer(timeInterval: 0.1, target: self, selector: #selector(GameViewController.updateFunction), userInfo: nil, repeats: true)
但是,当您在Spritekit游戏中使用该代码时,它会出现错误并且不起作用
我能用什么来工作呢?只需像这样启动计时器:
class GameScene: SKScene{
var timer: Timer!
override func didMove(to view: SKView) {
timer = Timer.scheduledTimer(timeInterval: 0.5, target: self, selector: #selector(self.yourFunction), userInfo: nil, repeats: true)
}
@objc func yourFunction(){
print("timer function")
}
func goToAnotherScene(){
timer.invalidate()
}
}
请注意,您需要在函数之前设置@objc,我建议您远离NSTimer/Timer。SpriteKit有自己的计时功能,让NSTimer/Timer无bug工作是一个巨大的麻烦和任务。使用SKAction可满足99%的计时需求。如果您提供了代码,我将能够更好地帮助您提供正确的答案。您会遇到哪些错误?我在我的Spritekit游戏中也使用了计时器,它工作得很好。你如何使用它?我的主要错误似乎是选择器。谢谢,这是我的问题!仅供参考如果您离开应用程序,此代码将中断/得到不正确的结果