如何使用 Swift Spritekit 每 3 秒调用一个函数

How to call a function every 3 seconds using Swift Spritekit

在正常情况下swift,你可以这样使用:

Foundation.Timer.scheduledTimer(timeInterval: 3.0, target: self, selector: #selector(GameViewController.hideFunc), userInfo: nil, repeats: true)

我的问题是,在 Sprite 套件游戏中,您可以用什么来代替它?

好吧,您可以使用 SKActions 轻松构建它:

    let pauser = SKAction.wait(forDuration: 3.0)
    let trigger = SKAction.perform(#selector(GameViewController.hideFunc, onTarget: self)
    let pauseThenTrigger = SKAction.sequence([ pauser, trigger ])
    let repeatForever = SKAction.repeatForever(pauseThenTrigger)
    node.run( repeatForever )

这种方法的优点是可以让您对需要使用它的任何节点重用该动作,并且您可以通过从场景中删除或添加节点来轻松控制动作,在其上调用 removeAllActions()等