カスタム検索

2010年8月26日木曜日

cocos2dで日本語をCCBitmapFontAtlasで使うには

ちょっとはまったんでメモメモ

cocos2dでは文字の表示に CCLabel という簡単なものがあるのですが、これが結構な重い処理となります。
スムーズな動作を必要とするゲームなどでは、BitmapFontを使うと良いです。
(逆にADV系など速度を要求しないものであればCCLabelでおk)

現時点(cocos2d v0.99.4)では標準のままでは使えません。
公式フォーラムのコチラで問題点が指摘されています。

プロジェクト内の cocos2d Sources > cocos2d > CCBitmapFontAtlas.h を編集します。

kCCBitmapFontAtlasMaxChars = 2048

kCCBitmapFontAtlasMaxChars = 65536
に変更

BitmapFontを作る方法ですが、Hiero Font EditorというのとBMFontGeneratorというが推奨されているようです。

BMFontはWindowsでしか動かないので、とりあえずhieroを使ってみたんですが、どうもうちではうまく動作してくれませんでした。
(出力画像が天地左右反転されたり、出力対象がコピペできなかったり、一度出力すると変更して二度目の出力が出来なかったり)

なのでBMFontを使ったやり方を紹介します。

・必要な文字を含んだテキストファイルを作成(UTF-16で保存)
・Edit -> Select chars from file で上記ファイルを選択
・Export OptionsでBit depth を 32、png 出力
・Font Settingsで Font smoothing を選択

色などはお好みで、cocos2d側でも変更が効くので特に気にする必要もないと思います。
これで出力された .fnt ファイルを CCBitmapFontAtlas で読み込んでやればBitmapFontで描画されます。

0 件のコメント: