一个图像与alpha滞后spritekit

时间:2014-03-01 19:41:26

标签: ios xcode sprite-kit alpha lag

我正在制作游戏,它涉及沙尘暴。我决定基本的概念是,我会制作一个看起来大致像沙尘暴的图像,然后用一些粒子/其他任何东西装饰它。

我在第一步遇到了一个问题。为了测试目的,我将一个简单的图像拼凑在一起: Poorly Made Sandstorm

我把它添加到我的游戏中,而FPS下降了60%。我对一张图片的效果感到惊讶,但我并不太担心。我将图像的分辨率降低了一半,并且再次出现了很多延迟。

spritekit / iOS在使用alpha处理中等大小的图像时真的很糟糕吗?我读到了另一个问题,即模拟器在渲染方面不好,但这不是整个问题。

有没有希望在没有切割我的表现的情况下进行渲染?粒子工作得很好,其他一切都以60fps运行就好了,但是这个图像的添加显然是对资源的严重消耗。

编辑:我在手机上测试了我的游戏,没有任何延迟。显然,模拟器毕竟是非常糟糕的渲染。与此同时,我很好奇如何加速表现,因为显然存在某种滞后现象。

1 个答案:

答案 0 :(得分:1)

我不是SpriteKit的专家,但我在普通核心动画和分层方面有类似的经验。

问题是带有alpha的图像,即使对于它的“不透明”部分,它也会在每次移动时在其下面的所有子图层上引入重绘调用。首先检查这是否真的是问题,然后尝试其中一个,看看它是否有所改进:

  1. SKCropNode可能会阻止呈现底层元素
  2. 平铺图像,只有边框具有alpha
  3. 快照下面的图层。
  4. 减少正在渲染的节点数量,隐藏那些“在沙尘暴下”的节点。
  5. 你应该使用真实的设备来测试游戏的性能,你不能依赖模拟器。