【问题标题】:Initializer used when loading nodes from SKS file从 SKS 文件加载节点时使用的初始化程序
【发布时间】:2016-06-29 17:02:37
【问题描述】:

我正在创建SKSpriteNode 的子类,例如Player 并在我的 *.sks 文件中使用自定义类 Player 标记 SKSpriteNode。在 *.swift 中,我正在使用:self.childNode(withName: "myNodesName") 加载节点。好吧,这很好用,但我还想修改用于此过程的构造函数。

如果我从 *.sks 访问 *.swift 文件中的 SKSpriteNode,则使用 SKSpriteNode 的哪个构造函数

self.childNode(withName: "myNodesName") as? Player

?

【问题讨论】:

    标签: ios swift sprite-kit skspritenode swift3


    【解决方案1】:

    调用了什么构造函数?

    从 sks 文件创建节点时,SpriteKit 确实使用此初始化程序

    init?(coder aDecoder: NSCoder)
    

    如何在 Player 中实现它?

    你有一个 Player 类。你可以这样实现构造函数

    class Player: SKSpriteNode {
        required init?(coder aDecoder: NSCoder) {
            super.init(coder: aDecoder)
        }
    }
    

    【讨论】:

    • 调用什么实例?
    • 它被某种解析器(我相信)调用,负责将 SKS 文件转换为 SKScene。
    • 所以可能没有办法改变它?
    • @cocoseis:你需要做什么?
    • 我希望播放器在初始化时知道​​它的兄弟(节点)。
    猜你喜欢
    • 1970-01-01
    • 2018-12-07
    • 2021-01-01
    • 1970-01-01
    • 2015-10-17
    • 2010-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多