自定义类函数在场景中不起作用



所以我尝试创建自定义类,然后使用它们的函数,但我甚至不能做最简单的事情。

这是我的自定义类:

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()

<<p> 解决方案/strong>

你可以创建你需要的"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 */
    }
}

最新更新