所以我尝试创建自定义类然后使用他们的功能,但我甚至无法做最简单的事情。
这是我自定义的课程:
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()。我在这里做错了什么?
答案 0 :(得分:1)
<强>问题强>
自己运行,看起来你没有任何名为“Block”的文件。当使用SKScene
方法初始化fileNamed
时,如果文件不存在,则返回可选项。在这种情况下,“阻止”不存在,因此变量为空,并且不会在createBlock()
方法中调用didMoveToView()
。
<强>解决方案强>
您可以创建所需的“阻止”文件,也可以只调用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 */
}
}