自定义类功能不适用于场景

时间:2016-08-09 01:29:50

标签: ios swift xcode sprite-kit

所以我尝试创建自定义类然后使用他们的功能,但我甚至无法做最简单的事情。

这是我自定义的课程:

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()。我在这里做错了什么?

1 个答案:

答案 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 */
    }
}