【发布时间】:2014-10-01 15:28:28
【问题描述】:
我有一个用 Swift 编写的非常简单的 SKScene,它不会被触发:
override init(size: CGSize) {
super.init(size: size)
backgroundColor = SKColor.whiteColor()
var bg = SKSpriteNode(imageNamed: "myBackground")
bg.position = CGPoint(self.size.width/2, self.size.height/2)
self.addChild(bg)
}
我已经在 Objective-C 中尝试了相同的代码,并且在那里调用它没有问题,所以我想知道他们是否在 Swift 中使用 initWithSize 更改了某些内容,以及我是否遗漏了一些重要的内容。
注意:SKScene 会被触发,只有这个函数不会。
谢谢!
【问题讨论】:
-
你需要在初始化器的最后执行super.init,可能是这个问题
-
@Eugene 但是如果我这样做了,Xcode 逻辑上会告诉我它不能在 super.init 初始化之前设置一些东西。
-
您遇到什么错误?我已经尝试了您的代码并得到了您没有为 CGPoint 初始化程序提供 x: 和 y: 参数的错误,所以我添加了它们并且代码可以正常工作。您是否尝试过设置断点或打印以查看代码是否实际上没有被触发?
-
@Eugene "在 super.init 初始化之前在基础对象中使用方法 ..." 但是即使我删除了所有代码并只使用 super.init,该方法也不会被调用。 ..
-
@Eugene
super.init需要放在最后有什么特别的原因吗?
标签: swift sprite-kit skscene