2013-04-14 40 views
-2

我需要在屏幕上添加大約50個精靈,然後重新繪製它們。當我嘗試像這樣添加它們時:Xcode Cocos2D如何添加50個沒有延遲的精靈

[self addChild:Img]; 

這會產生很多延遲。

我也嘗試創建一個CCLayer,然後將所有的圖像添加到圖層,但我得到相同數量的滯後。我如何添加所有這些精靈並減少延遲?大多數遊戲可能有一個頁面超過50個精靈。

+2

更具體,提供詳細信息。相同的紋理50倍?紋理大小?在設備或模擬器上?你如何衡量滯後? etc ... – YvesLeBorg

+0

除了YvesLeBorg問題什麼時候和什麼時候你嘗試創建/添加精靈? – giorashc

回答

1

如果所有或大部分精靈都是相同的,那麼對於共享相同紋理或圖像的所有CCSprites,您可以使用一個CCSpriteBatchNode。這將節省內存。

你會做類似下面

1)定義CCSpriteBatchNode

2)將其添加爲子視圖。

3)從batchNode

4)設置爲displayFrame的精靈

0

使用CCSpriteSheet定義的框架,如果你還沒有使用精靈張尚,認爲他們作爲巨大的圖像是你把你的精靈放在裏面。它們附帶一個文件,用於指定每個精靈的邊界,以便在代碼中需要時可以將其拉出。

這些使用這個好主意的原因是因爲Cocos2D爲它們進行了優化。如果您正確使用精靈表內的精靈,而不是每個精靈進行一次OpenGL ES繪製調用,那麼它只會爲每個精靈表創建一個。

總之 - 速度更快,特別是當你有很多精靈時!