2013-04-22 56 views
0

我正在構建一個讀取二維數組以創建地圖的遊戲,但牆壁都與角落和地板分離,每個牆壁,每個角落和每個樓層都是單獨的圖像,並且這消耗了大量的CPU,但我真的想創建一個隨機的地圖感覺,這就是爲什麼我要爲每個角落和牆壁使用圖像。iOS Cocos2D優化

我在想,也許我可以通過合併2個或更多不同紋理來生成紋理,以提高性能。

有誰知道我該怎麼做?或者也許另一種解決方案將圖像轉換成PVR會有什麼不同?

感謝

+0

因此,讓我這樣做:你有一個你生成的(值)的2d數組..你每個值都是從磁盤讀取的另一個紋理,並將它們放置在屏幕上的正確位置? – skytz 2013-04-22 11:22:31

回答

2

對於初學者來說,你應該使用一個紋理圖集,與像TexturePacker的工具創建的,儘可能多的「圖像」的分組到一個單一的圖集。基本上加載一次,並根據需要創建儘可能多的精靈,而無需重新加載。使用PVR將加速負載,並使您的捆綁包大小受益。其次,特別是對於地圖背景,您應該使用您用上面的精靈表初始化的CCSpriteBatchNode。然後,當您創建一個圖塊時,只需創建該圖塊並將其添加到批處理節點即可。將批處理節點添加到場景中。這樣做的好處是,無論批處理節點中包含的精靈(tile)的數量如何,這些都將在單個GL調用中繪製。現在,您將從性能角度出發,獲得最大收益。

最後,不要依賴與模擬器一起運行時的FPS信息。模擬器不使用主機的GPU,其性能遠低於設備上的性能。因此,在發佈有關性能的問題之前,請確保您在設備上進行測量。

+1

夥計,那CCSpriteBatchNode真棒!謝謝! – Badjano 2013-04-22 20:47:50