cocos2d-x BitmapFont をTexturePacker

Bitmap Fontの作り方は前の記事を参照

cocos2d-x Bitmap Fontを使う (Texture Atlas) - GardenFarm cocos2d-x C++ ゲーム開発

 

上記で出来上がった.fntとpngファイルを使いTexturePackというソフトで暗号化を行う

TexturePacker - Create Sprite Sheets for your game!

初回起動時にcocos2d-xを選択する。

 

①左のSpriteの部分にフォントのpngをドラッグドロップ

f:id:FALStar:20160717143015p:plain

 

②右側のTextureFormat をPVR+zlibに変える。

(PixelFormatはファイルサイズを減らすための設定なので任意 RGBA8888->RGBA4444にした)

f:id:FALStar:20160717143519p:plain

 

③右のContent protectionの鍵ボタンを押して暗号化キー入力をする

32文字で、使える文字は16進数「0123456789abcdef」

入力後Closeボタンで暗号化ダイアログを閉じる

f:id:FALStar:20160717144210p:plain

 

④右のスクロールを一番下まで移動

Trim modeをNone

Extrudeを0

に変更する

f:id:FALStar:20160717144812p:plain

 

⑤ファイル書き出し

File -> Publish sprite sheet を選択して、 保存場所を決めて保存する

f:id:FALStar:20160717145037p:plain

 

⑥保存場所に出来た.plistは使わないので破棄してOK

.pvr.cczファイルを ゲームのプロジェクトリソースの.fntと同じ場所に配置

.fntをテキストエディタで開き3行目の読込画像ファイルの部分を⑤で書き出したファイル名にする

 

f:id:FALStar:20160717145527p:plain

⑦プログラム内で使用時はシーンのinitなどに暗号化キーをセット

キー32文字を8桁区切りで頭に「0x」をつけて記述

ZipUtils::setPvrEncryptionKey(0x01234567, 0x89abcdef, 0x01234567, 0x89abcdef);

あとは普通にフォントを使う

Label* label = Label::createWithBMFont("フォント名.fnt", "出力文字");
label->setScale(20);

this->addChild(label);

 これでFontのpngファイルは格納しなくてよくなった