1

我正在使用 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 类会在完整性检查时断言

//缩放W。完整性检查

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

//缩放H。完整性检查

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

我不知道为什么会这样。

4

1 回答 1

0

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

除此之外,字体大小为 300/600 的字体实在是太大了。您应该考虑替代方法来实现您想要实现的目标,因为如此大的字体会极大地浪费(仍然是宝贵的)内存。

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

于 2012-08-30T13:21:22.093 回答