【问题标题】:Missing argument for parameter 'OnChildWithName' in call when using SKAction使用 SKAction 时在调用中缺少参数“OnChildWithName”的参数
【发布时间】:2015-03-29 23:03:55
【问题描述】:

希望能得到一些快速的帮助。

我正在制作一个位于 OS X 状态栏中的应用程序,我试图每 5 秒调用一次函数,该函数使用以下 SKAction 打印 "YEP"

    let waitAction = SKAction.waitForDuration(5)

    let checkIt = SKAction.runBlock {
        println("YEP")
    }
    let action = SKAction.sequence([waitAction, checkIt])
    SKAction.runAction(action) //error here

谁能帮我解决这个错误?它发生在行

SKAction.runAction(action)

【问题讨论】:

  • 如果你只是因为想要每隔几秒运行一些代码而使用 SpriteKit,那么 SpriteKit 可能是矫枉过正。你试过NSTimer吗?
  • 我已经研究过使用 NSTimer,但我发现很难让它正常工作。我可以将我所有的代码放在一个函数中,使用 NSTimer 每 5 秒调用一次,但我无法让计时器正常工作。
  • 现在您无法让SKAction 正常工作。听起来你被困在一块石头和一个坚硬的地方之间,除了在这种情况下,其中一个 (NSTimer) 是正确的路径,而另一个 (SKAction) 是错误的路径。
  • 好吧,我会放弃 SKAction 并使用 NSTimer。谢谢
  • 明白了,比我想象的要简单@nhgrif 谢谢

标签: macos swift sprite-kit


【解决方案1】:

SKAction 类上没有名为 runAction 的方法。

方法是runAction(_:onChildWithName:)

您必须同时传递您希望执行的 SKAction 以及代表您希望对其运行操作的孩子的姓名的 String

SKAction.runAction(action onChildWithName: "NameOfChild")

【讨论】:

  • 好的,非常感谢!我无法弄清楚我希望对其执行操作的孩子是什么。它在 AppDelegate 类和函数 applicationDidFinishLaunching 中
  • 查看我在您的问题上留下的评论。你可能不需要使用 SpriteKit...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-01
  • 2017-04-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多