1

我已经设置了一个 SKScene 用作 SKReferenceNode。雪橇是一个 SKSpriteNode,在参考节点场景中定义了一个自定义类,所有的狗都是雪橇精灵的孩子。自定义类和使用参考节点都很好,我的问题是我无法“裁剪”场景以仅显示 N 条狗。就好像在将参考节点放入另一个场景之后,该父场景忽略了参考节点的宽度/高度参数,只显示其中的所有内容。那么问题来了,这可能吗?或者 SKReferenceNodes 在父场景中使用时是否不遵守场景宽度和高度属性?

第一张图像是全视图参考场景 (70x425)。第二张图片是当我只希望显示底部的 2 只狗时,当我以编程方式更改高度时框架应该是什么样子。

在此处输入图像描述在此处输入图像描述

class SledTeam: SKSpriteNode {
    var dogTeam = [Int]()
    required init?(coder aDecoder: NSCoder) {
        switch dogTeam.count {
            case 7,8:
                self.scene?.size.height = 425
                break
            case 5,6:
                self.scene?.size.height = 335
                break
            case 3,4:
                self.scene?.size.height = 260
                break
            case 1,2:
                self.scene?.size.height = 190
                break
            default:
                break
        }
    }
}
4

1 回答 1

0

我的猜测是在你的 sks 参考文件中使用一个不可见的 sprite 节点,其大小可以包含所有节点。在调用这个不可见的“基础”节点并裁剪它之后。要获取不可见节点,您可以使用此扩展:

extension SKReferenceNode {
    func getBasedChildNode () -> SKNode? {
        if let child = self.children.first?.children.first {return child}
        else {return nil}
    }
}

有关其他详细信息,请参阅我的旧帖子: 将 SKReferenceNode/SKScene 添加到 SpriteKit 中的另一个 SKScene

于 2017-05-24T09:40:21.723 回答