【问题标题】:Swift SpriteKit "Extra Arguement "size" in call调用中的 Swift SpriteKit“额外参数”大小
【发布时间】:2015-10-20 13:01:16
【问题描述】:

尝试在 SKScene 和另一个 SKScene 之间转换时。例如,当它的游戏结束时,我使用下面的代码并得到以下错误:-

通话中的额外参数“大小”

以下是发生此错误时使用的代码示例。

let scene = GameOverScreen(size: self.scene!.size) //<<---- Error throws here
scene.scaleMode = SKSceneScaleMode.AspectFill
view!.scene?.paused = true

self.scene!.view!.presentScene(scene, transition: transition)

这在我以前的游戏中从未发生过,我似乎无法弄清楚为什么?

使用 XCode 7、swift 2 和 SpriteKit

提前致谢,

雷切尔

【问题讨论】:

  • 我测试了你的代码,一切都很好。 GameOverScreenSKScene 的子类吗?
  • class GameOverScreen: SKScene { } 在我的其他游戏中也适用于我。和游戏结束屏幕几乎相同。两个屏幕都是 SKScene
  • GameOverScene 中还有其他初始化程序吗?我很想看看你的 GameOverScene,至少是任何初始化程序

标签: swift sprite-kit swift2 skscene


【解决方案1】:

我猜这是因为您在GameOverScene 中定义了其他未提及的初始化程序。既然你这样做了,你就不会自动继承所有SKScene 的初始化程序。您可能只需将以下内容添加到GameOverScene

override init(size: CGSize) {
    // Set up your properties
    super.init(size: size)

    // Do whatever else you need to
}

如果您没有在 GameOverScene 中定义任何初始化程序,您将不会看到这种行为。我建议在Automatic Initializer Inheritance 上做一些进一步的阅读。我在该页面上链接到的部分描述了类何时继承超类的初始化程序的规则。默认情况下它们不会被继承。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 2015-09-13
    • 2018-08-26
    • 2017-01-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多