视图的SpriteKit孙子重叠zPosition

时间:2018-03-15 14:26:20

标签: sprite-kit

我已经开始使用swift和SpriteKit实现iOS游戏。

我有一个名为“bubble”的对象,它基本上是一个SKSpriteNode(zPosition = 0,带有图像),它有一个子项(这是一个人物图像的SKCropNode被裁剪成一个圆圈,zPozition = 1)。 / p>

如果一个气泡覆盖整个另一个气泡,那就没关系,但不知怎的,似乎气泡部分覆盖了人物图像。

提供了一个演示图片:(我的最终输出应该是bubble1将位于bubble-of-child-2之上)

也许问题是SpriteKit忽略了子排序,只是将zPozition的任何节点设置在正确的位置?也就是说 - 首先绘制所有气泡,因为它们的zPosition = 0,然后绘制所有气泡子,因为它们都有zPosition = 1?

如果是这种情况,我该怎样做才能确保所有的泡泡部分都被拉到一起(其他气泡可以覆盖那个泡泡,我不在乎)知道我有一些动态的气泡?

bubbles partially cover each other

2 个答案:

答案 0 :(得分:1)

根据this SO answer,确实在绘制之前计算了所有zPosition值。

我最终创建了一个气泡计数器,每次添加一个气泡时加1,并将计数器值作为其zPosition。 在气泡中,我确保每个孩子都有一个zPosition在范围(0,1)

答案 1 :(得分:1)

如果您需要按照精确的顺序绘制内容,我建议您阅读{{3>}的了解节点树的绘图顺序部分。一切都在正确描述中。