【问题标题】:Access SKCameraNode from a different class using Swift使用 Swift 从不同的类访问 SKCameraNode
【发布时间】:2015-10-21 10:11:46
【问题描述】:

我在我的 GameScene 类中创建了一个 SKCameraNode,并将按钮添加到它作为 SKSpriteNodes。然后我将 GameScene 相机设置为 SKCameraNode。

我有另一个自定义类,称为 SKNode 类型的 Player。从这个类中,我需要访问位于 GameScene 内的 SKCameraNode 中的按钮节点。我该怎么做?

我无法在我的 Player 类中创建 GameScene 类的实例,因为它需要 size 参数,如果我这样做了,我将拥有两个不同的 GameScene 类实例。

任何帮助表示赞赏...

【问题讨论】:

    标签: swift sprite-kit sknode


    【解决方案1】:

    将播放器添加到场景后,您始终可以访问该场景。添加播放器后,您必须确保并尝试访问场景,否则此代码将使您的游戏崩溃。

    在你的 Player 类中,你可以去

    (self.scene as! GameScene).yourCameraNode
    

    假设 yourCameraNode 是 GameScene 的一个属性

    【讨论】:

    • 哇,太简单了!谢谢!我总是忘记使用 as!很难知道什么时候施放什么时候不施放。有什么区别:self.scene & self.scene as!游戏场景??它们显然指的是不同的对象?
    • 当您尝试访问特定于该类型对象的某些属性或方法时需要强制转换
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多