CCLabelBMFont(字体大小600)崩溃视网膜设备(不是模拟器)

时间:2012-08-29 21:00:21

标签: iphone cocos2d-iphone retina-display

我正在使用CCLabelBMFont在我的游戏中显示一个非常大的字母。 SD字体大小为300,HD字体大小为600

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

有4个支持文件(font-test4.fnt / -hd.fnt和font-test4.png / -hd.png

在两种模拟器模式(视网膜和非视网膜)中一切正常。

然而,当在iPhone4上运行时,CCLabelBMFont类在完整性检查时断言

// scaleW。理智检查

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

// scaleH。理智检查

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

我不知道为什么会这样。

1 个答案:

答案 0 :(得分:0)

您达到了最大纹理大小限制。检查位图字体的png文件,特别是HD变体。如果它在任一维度(宽度或高度)上大于2048像素,则只有iPad 2(使用iOS 5.1),iPad 3和iPhone 4S可以加载该纹理。这些设备最多支持4096x4096纹理,旧设备仅支持2048x2048。

除此之外,字体大小为300/600的字体非常大。您应该考虑采用其他方法来实现您想要实现的目标,因为如此大的字体大小会浪费(仍然是宝贵的)内存。

模拟器并不关心这些问题。它在你的Mac上运行,可以使用你所有的Mac内存和其他资源。