我正在制作一款游戏,其中涉及一场沙尘暴。我决定基本概念是我将制作一个看起来大致像沙尘暴的图像,然后用一些粒子/其他任何东西来装饰它。
我在第一步遇到了问题。为了测试目的,我拼凑了一个简单的图像:
我将它添加到我的游戏中,FPS 下降了 60%。我对一张图像的效果感到惊讶,但我并不太担心。我将图像的分辨率减半,又一次出现了很多延迟。
spritekit/iOS 真的不擅长处理带有 alpha 的中等大小的图像吗?我在另一个问题上读到模拟器不擅长渲染,但这不是问题的全部。
有没有希望在不影响我的表现的情况下渲染它?粒子运行良好,其他一切都以 60fps 运行,但添加此图像显然会严重消耗资源。
编辑:我在手机上测试了我的游戏,没有任何延迟。显然,模拟器毕竟在渲染方面真的很糟糕。同时,我很好奇如何提高性能,因为显然存在某种滞后。
Best Answer-推荐答案 strong>
我不是 SpriteKit 方面的专家,但我在简单的核心动画和分层方面有类似的经验。
问题在于,带有 alpha 的图像,即使对于其中的“不透明”部分,每次移动时都会在其下方的所有子层上引入重绘调用。首先检查这是否真的是问题所在,然后尝试其中一个,看看它是否有所改善:
SKCropNode 可以阻止渲染下面的元素
- 平铺图像,以便只有边框具有 alpha 值
- 拍摄下面的图层。
- 减少渲染节点的数量,隐藏“沙尘暴”下的节点。
而且你应该使用真实设备来测试你的游戏性能,你不能依赖模拟器。
关于ios - 一张带有 alpha 滞后 spritekit 的图像,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/22119381/
|