我已经设置了一个SKScene用作SKReferenceNode。雪橇是一个SKSpriteNode,在参考节点场景中定义了一个自定义类,所有的狗都是雪橇精灵的子项。自定义类和使用参考节点都很好,我的问题是我无法" crop"现场只能显示N只狗。就好像在将参考节点放入另一个场景之后,该父场景忽略了参考节点的宽度/高度参数并且只显示其中的所有内容。所以问题是,这可能吗?或者在父场景中使用时,SKReferenceNodes是否不符合场景宽度和高度属性?
第一张图片是全景参考场景(70x425)。如果我只想要显示底部的两只狗,那么当我以编程方式更改高度时,第二个图像是应该的框架。
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
}
}
}
答案 0 :(得分:0)
我的想法是在你的sks参考文件中使用一个不可见的精灵节点,其大小包含所有节点。 在调用这个不可见的“基础”节点并裁剪它之后。 要获取不可见节点,您可以使用此扩展名:
extension SKReferenceNode {
func getBasedChildNode () -> SKNode? {
if let child = self.children.first?.children.first {return child}
else {return nil}
}
}
有关其他详细信息,请参阅我的旧帖子: Add SKReferenceNode/SKScene to another SKScene in SpriteKit