2011-02-13 52 views
1

我正在編寫一個簡單的2D遊戲,它在每次更新時都會對多個精靈進行一些自定義繪圖 - 也就是說,我有遊戲視圖,它代表所有精靈在每次更新時執行石英渲染(基於點/線)。在一個UIVew中使用多個CALayer的性能增益

我的表現還可以,大概有50個活動對象被渲染,但現在事情開始變慢,所以我期待優化。爲此,我決定將我的精靈預渲染到CALayer,然後將其添加到遊戲視圖中。

我的第一個想法是給每個Sprite實例一個CALayer,它被添加到GameView的view.layer中作爲子圖層。這意味着我使用一個具有多個CALayers的單個UIView--每場比賽一個精靈。

如果我決定爲每個遊戲精靈使用UIView,會有一個可以忽略的性能損失嗎?

回答

1

UIViews是響應者鏈的一部分,會增加額外的開銷。我開始使用UIViews做精靈,發現手勢變得遲鈍。 我會建議堅持與CALayers

1

據我所知,UIView是圍繞CALayer的漂亮的包裝紙,所以性能損失不應該太大。但我認爲一個精靈可以更好地代表CALayer的實例,而不是UIView

相關問題