所以我尝试创建自定义类,然后使用它们的函数,但我甚至不能做最简单的事情。
这是我的自定义类:
import SpriteKit
class BlockScene: SKScene {
func createBlock(){
print("Block Created")
}
}
这是我的MainScene
中的代码import SpriteKit
class GameScene: SKScene {
let variable = BlockScene(fileNamed: "Block")
override func didMoveToView(view: SKView) {
variable?.createBlock()
}
override func update(currentTime: CFTimeInterval) {
/* Called before each frame is rendered */
}
}
加载主场景时,它不会执行我的函数createBlock()。我哪里做错了?
问题
我自己运行这个,看起来你没有名为"Block"的文件,你正在加载。当使用fileNamed
方法初始化SKScene
时,如果该文件不存在,则返回一个可选值。在这种情况下,"Block"不存在,因此变量为null,并且不会在didMoveToView()
方法中调用createBlock()
。
你可以创建你需要的"Block"文件,或者只是调用BlockScene的默认初始化器,如下所示:
import SpriteKit
class BlockScene: SKScene {
func createBlock(){
print("Block Created")
}
}
class GameScene: SKScene {
let variable: BlockScene = BlockScene()
override func didMoveToView(view: SKView) {
self.variable.createBlock()
}
override func update(currentTime: CFTimeInterval) {
/* Called before each frame is rendered */
}
}