2012-08-29 31 views
1

我正在使用CCLabelBMFont在我的遊戲中顯示一個非常大的字母。的SD字體大小尺寸爲300,HD字體大小是600CCLabelBMFont(字體大小600)崩潰視網膜設備(不是模擬器)

letter =[CCLabelBMFont labelWithString:@"A" fntFile:@"font-test4.fnt"]; 

與4個支持文件(字體-test4.fnt/-hd.fnt和字體test4.png/-hd.png

一切都在這兩個模擬器模式上的iPhone4上運行時工作正常(視網膜和非視網膜)。

然而,當健全檢查

// scaleW。健全檢查

的CCLabelBMFont類斷言

// scaleH。健康檢查

propertyValue = [nse nextObject]; 
NSAssert([propertyValue intValue] <= [[CCConfiguration sharedConfiguration] maxTextureSize], @"CCLabelBMFont: page can't be larger than supported"); 

我不知道爲什麼會發生這種情況。

+0

斷言告訴你這個問題。紋理比支持的更大,它不能存儲該分辨率的紋理。模擬器不能正確模擬內存等內容,因此它具有較大的maxTextureSize。 –

回答

0

您正在達到最大紋理尺寸限制。檢查位圖字體的png文件,特別是HD變體。如果尺寸(寬度或高度)大於2048像素,則只有iPad 2(帶有iOS 5.1),iPad 3和iPhone 4S可以加載該紋理。這些設備最多支持4096x4096紋理,舊設備僅支持2048x2048。

除此之外,字體大小爲300/600的字體只是非常大。你應該考慮替代方法來做你想做的事情,因爲這麼大的字體大小對於內存來說是一個巨大的浪費。

儘管模擬器並不關心這些問題。它在你的Mac上運行,可以使用你所有的Mac內存和其他資源。

+0

您還將如何在屏幕上繪製巨大的字母?我猜靜態圖像會使用更少的內存。 – tavis

相關問題