xcode - 在 spritekit 场景编辑器中使用自定义 SKNodes

标签 xcode swift sprite-kit skspritenode skscene

我想使用我自定义的 SKNode 子类创建一个关卡。我尝试将 SKNode 添加到场景编辑器,并使用“自定义类”选项卡提供我想要的类,但这绝对没有任何作用。该节点仍然是空的,当我运行模拟器时什么也不会显示。此外,为了确保该类确实有效,我以编程方式将它的一个实例添加到场景中,以查看它是否显示并且确实显示了。

如何通过场景编辑器将我的自定义节点添加到场景中?

这是我的自定义类代码:

class Player: SKSpriteNode {
    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        print("Test")
        self.addChild(SKSpriteNode(imageNamed: "Player.png"))
    }
}

最佳答案

你需要做两件事:

1) 设置自定义类时,您必须在类名前加上您应用的名称; My_App_Name.MyClass 例如,其中 _ 代表一个空格。

2) 你的 SKNode 子类需要实现 required init?(coder aDecoder: NSCoder)


例如,在我名为“MyGame”的项目中:

enter image description here

class MyNode: SKSpriteNode {
    // Set this after the node has been initaliser by init(coder:)
    var someStat: Int = 0

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        // To check it worked:
        print("Yup, all working")
    }
}

关于xcode - 在 spritekit 场景编辑器中使用自定义 SKNodes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31230666/

相关文章:

ios - SKNode 子类应该如何与父场景和兄弟节点通信?

arrays - 如何从数组中获取所有数据并将其存储在新变量或常量中?

iOS - 在 Objective-c 和 Swift 上一起实现 UI

swift - 在 Swift 中验证 Unicode 代码点

swift - SpriteKit childNodeWithName 找不到现有节点

ios - 仅当 iOS 版本为 8 或更高版本时才初始化全局变量?

c++ - 当实例变量未初始化时,如何使 C++ 编译器产生错误或警告?

xcode - 我如何在 Swift Spritekit 的应用程序中使用 UILongPressGestureRecognizer?

ios - XC 测试框架 iOS(XCode 6.1) 测试 session 退出 (80) 未 checkin

iphone - 图像数据的 Base64 解码问题-iphone