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 クラスがアサートされます。

// 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");

なぜこれが起こっているのか分かりません。

4

1 に答える 1

0

テクスチャ サイズの上限に達しています。ビットマップ フォント、特に HD バリアントの png ファイルを確認します。いずれかの寸法 (幅または高さ) が 2048 ピクセルより大きい場合、iPad 2 (iOS 5.1 を搭載)、iPad 3、および iPhone 4S のみがそのテクスチャをロードできます。これらのデバイスは最大 4096x4096 のテクスチャをサポートしますが、古いデバイスは 2048x2048 のみです。

それに加えて、フォントサイズ 300/600 のフォントは途方もなく大きいです。そのような大きなフォント サイズは (依然として貴重な) メモリを大量に浪費するため、達成しようとしていることを別の方法で行うことを考える必要があります。

ただし、シミュレーターはこれらの問題をあまり気にしません。Mac 上で実行され、Mac のメモリやその他のリソースをすべて使用できます。

于 2012-08-30T13:21:22.093 に答える