我需要在屏幕上添加大約50個精靈,然後重新繪製它們。當我嘗試像這樣添加它們時:Xcode Cocos2D如何添加50個沒有延遲的精靈
[self addChild:Img];
這會產生很多延遲。
我也嘗試創建一個CCLayer,然後將所有的圖像添加到圖層,但我得到相同數量的滯後。我如何添加所有這些精靈並減少延遲?大多數遊戲可能有一個頁面超過50個精靈。
我需要在屏幕上添加大約50個精靈,然後重新繪製它們。當我嘗試像這樣添加它們時:Xcode Cocos2D如何添加50個沒有延遲的精靈
[self addChild:Img];
這會產生很多延遲。
我也嘗試創建一個CCLayer,然後將所有的圖像添加到圖層,但我得到相同數量的滯後。我如何添加所有這些精靈並減少延遲?大多數遊戲可能有一個頁面超過50個精靈。
如果所有或大部分精靈都是相同的,那麼對於共享相同紋理或圖像的所有CCSprites,您可以使用一個CCSpriteBatchNode。這將節省內存。
你會做類似下面
1)定義CCSpriteBatchNode
2)將其添加爲子視圖。
3)從batchNode
4)設置爲displayFrame的精靈
使用CCSpriteSheet定義的框架,如果你還沒有使用精靈張尚,認爲他們作爲巨大的圖像是你把你的精靈放在裏面。它們附帶一個文件,用於指定每個精靈的邊界,以便在代碼中需要時可以將其拉出。
這些使用這個好主意的原因是因爲Cocos2D爲它們進行了優化。如果您正確使用精靈表內的精靈,而不是每個精靈進行一次OpenGL ES繪製調用,那麼它只會爲每個精靈表創建一個。
總之 - 速度更快,特別是當你有很多精靈時!
更具體,提供詳細信息。相同的紋理50倍?紋理大小?在設備或模擬器上?你如何衡量滯後? etc ... – YvesLeBorg
除了YvesLeBorg問題什麼時候和什麼時候你嘗試創建/添加精靈? – giorashc