Swift 修剪一个空心玻璃

Swift 修剪一个空心玻璃,swift,sprite-kit,skreferencenode,Swift,Sprite Kit,Skreferencenode,我已经设置了一个SKScene用作SKReferenceNode。sled是一个SKSpriteNode,在引用节点场景中定义了一个自定义类,所有狗都是sled sprite的子对象。自定义类和使用引用节点都很好,我的问题是我无法“裁剪”场景以仅显示N条狗。就好像将引用节点放到另一个场景中之后,父场景忽略了引用节点的宽度/高度参数,而只是显示其中的所有内容。所以问题是,这可能吗?或者,在父场景中使用SKReferenceNode时,是否不符合场景宽度和高度属性 第一幅图像是全视图参考场景(70x

我已经设置了一个SKScene用作SKReferenceNode。sled是一个SKSpriteNode,在引用节点场景中定义了一个自定义类,所有狗都是sled sprite的子对象。自定义类和使用引用节点都很好,我的问题是我无法“裁剪”场景以仅显示N条狗。就好像将引用节点放到另一个场景中之后,父场景忽略了引用节点的宽度/高度参数,而只是显示其中的所有内容。所以问题是,这可能吗?或者,在父场景中使用SKReferenceNode时,是否不符合场景宽度和高度属性

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


My gues将在sks参考文件中使用一个不可见的sprite节点,其大小将包含所有节点。 调用此不可见的“基本”节点并裁剪它。 要获取不可见节点,可以使用以下扩展:

extension SKReferenceNode {
    func getBasedChildNode () -> SKNode? {
        if let child = self.children.first?.children.first {return child}
        else {return nil}
    }
}
有关其他详细信息,请参阅我的旧帖子:

我的gues将在sks参考文件中使用一个不可见的sprite节点,其大小将包含所有节点。 调用此不可见的“基本”节点并裁剪它。 要获取不可见节点,可以使用以下扩展:

extension SKReferenceNode {
    func getBasedChildNode () -> SKNode? {
        if let child = self.children.first?.children.first {return child}
        else {return nil}
    }
}
有关其他详细信息,请参阅我的旧帖子:

我通过使用裁剪节点解决了这个问题,但我仍然想知道为什么场景大小参数不适用。我知道引用节点本身没有大小属性,但这让我觉得它应该使用指定给它的场景的大小。为什么要应用场景大小参数?场景不会进行任何裁剪,所以,仅仅因为你们并没有看到它们,并不意味着它们应该cropOk。我只是假设,如果场景的设置与第二张图片类似,那么它会像UIKit中的场景一样出现交叉边界。如果不是,则场景大小应解释为视口,您将拥有视口之外的项目,但您不希望对其进行裁剪理解。谢谢。我通过使用裁剪节点解决了这个问题,但我仍然想知道为什么场景大小参数不适用。我知道引用节点本身没有大小属性,但这让我觉得它应该使用指定给它的场景的大小。为什么要应用场景大小参数?场景不会进行任何裁剪,所以,仅仅因为你们并没有看到它们,并不意味着它们应该cropOk。我只是假设,如果场景的设置与第二张图片类似,那么它会像UIKit中的场景一样出现交叉边界。如果不是,则场景大小应解释为视口,您将拥有视口之外的项目,但您不希望对其进行裁剪理解。谢谢