【发布时间】:2021-05-21 17:09:39
【问题描述】:
我有一个 SpriteKit 游戏,其中有弹跳的球。尽管使用了纹理图集(位于我的 .xcassets 文件夹中的 .spriteatlas 文件夹),每个球我都会收到 2 个绘制调用。
一些事实:
- 球是
SKSpriteNode的。 - 每个球都是一个父节点,它有一个子节点(与球相反旋转的叠加层,以提供照明/阴影的错觉)。所以,我们说的是每个球有 2 个节点。
- 球的纹理预先加载并通过
textureNamed(_:)存储在内存中。 - 我已设置
view.ignoresSiblingOrder = true。 - 没有 SpriteKit 背景图像可以让球在另一个节点上渲染;背景是透明的。因此,这些球不会与其他内容重叠。
-
zPosition未设置 - 不在父级和子级上。
根据我 learned 关于如何渲染场景的内容,我希望看到所有父节点在一次渲染中渲染,并为子节点添加额外的渲染(不过,即使这也是可疑的,因为我将ignoresSiblingOrder 设置为true)。
这里有什么我不明白的地方?为什么随着更多球添加到场景中,我的抽奖次数会急剧增加?
谢谢!
更新:
如果我不将子节点添加到球,无论有多少球,球的抽奖次数都是 1。所以,这绝对是子节点的问题,而不是父节点。
【问题讨论】:
标签: swift sprite-kit skspritenode