使用Scene的shouldRasterize属性

时间:2016-06-30 15:39:36

标签: ios swift sprite-kit rasterizing

我的游戏大部分级别都大于屏幕尺寸,因此相机跟随玩家的关卡。该级别填充了多个对象,例如平台和地雷。从整体来看,这些平台和地雷不会在关卡中移动(从未在update方法中执行任何操作或使用SKActions),但在屏幕上它们似乎在移动因为相机跟随播放器。我知道将场景的shouldRasterize属性设置为true可以提高不移动节点的性能。所以我的问题是场景是否将平台和地雷视为移动或静止/将shouldRasterize属性设置为true在这种情况下帮助我?

1 个答案:

答案 0 :(得分:0)

正如您所指出的,shouldRasterize确实将节点(以及每个后代)的呈现保存在内存中。因此,如果下一帧没有任何改变,则使用缓存渲染。

你说你的场景没有任何改变。你确定吗?甚至不是玩家?如果是这样,那么shouldRasterize = true应该使渲染更快。否则,即使单个visibile节点随时间变化也是如此,您也不应将shouldRasterize设置为true

试试吧

在这种情况下,测试最佳方法非常容易。只需在两种模式下运行您的游戏(shouldRasterize = false然后shouldRasterize = true)并检查帧速率何时更高。

最后的考虑因素

为什么要考虑这种优化?你的游戏速度慢吗?如果你的游戏只是一个没有任何动作的场景滚动而且速度很慢,那么在应用任何优化之前你应该修复一些问题。