【问题标题】:High SpriteKit draw count with SKSpriteNode & texture atlas使用 SKSpriteNode 和纹理图集的高 SpriteKit 绘制计数
【发布时间】:2021-05-21 17:09:39
【问题描述】:

我有一个 SpriteKit 游戏,其中有弹跳的球。尽管使用了纹理图集(位于我的 .xcassets 文件夹中的 .spriteatlas 文件夹),每个球我都会收到 2 个绘制调用

一些事实:

  1. 球是SKSpriteNode 的。
  2. 每个球都是一个父节点,它有一个子节点(与球相反旋转的叠加层,以提供照明/阴影的错觉)。所以,我们说的是每个球有 2 个节点。
  3. 球的纹理预先加载并通过textureNamed(_:)存储在内存中。
  4. 我已设置view.ignoresSiblingOrder = true
  5. 没有 SpriteKit 背景图像可以让球在另一个节点上渲染;背景是透明的。因此,这些球不会与其他内容重叠。
  6. zPosition 未设置 - 不在父级和子级上。

根据我 learned 关于如何渲染场景的内容,我希望看到所有父节点在一次渲染中渲染,并为子节点添加额外的渲染(不过,即使这也是可疑的,因为我将ignoresSiblingOrder 设置为true)。

这里有什么我不明白的地方?为什么随着更多球添加到场景中,我的抽奖次数会急剧增加?

谢谢!

更新:

如果我不将子节点添加到球,无论有多少球,球的抽奖次数都是 1。所以,这绝对是子节点的问题,而不是父节点。

【问题讨论】:

    标签: swift sprite-kit skspritenode


    【解决方案1】:

    我通过在父子节点上将zPosition 设置为相同的值解决了这个问题。

    parentNode.zPosition = 1.0
    childNode.zPosition = 1.0
    

    无论有多少球,现在总共 2 次抽球。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-30
      相关资源
      最近更新 更多