2011-02-13 29 views
1

我正在编写一个简单的2D游戏,它在每次更新时都会对多个精灵进行一些自定义绘图 - 也就是说,我有游戏视图,它代表所有精灵在每次更新时执行石英渲染(基于点/线)。在一个UIVew中使用多个CALayer的性能增益

我的表现还可以,大概有50个活动对象被渲染,但现在事情开始变慢,所以我期待优化。为此,我决定将我的精灵预渲染到CALayer,然后将其添加到游戏视图中。

我的第一个想法是给每个Sprite实例一个CALayer,它被添加到GameView的view.layer中作为子图层。这意味着我使用一个具有多个CALayers的单个UIView--每场比赛一个精灵。

如果我决定为每个游戏精灵使用UIView,会有一个可以忽略的性能损失吗?

回答

1

UIViews是响应者链的一部分,会增加额外的开销。我开始使用UIViews做精灵,发现手势变得迟钝。 我会建议坚持与CALayers

1

据我所知,UIView是围绕CALayer的漂亮的包装纸,所以性能损失不应该太大。但我认为一个精灵可以更好地代表CALayer的实例,而不是UIView

相关问题