可変幅ビットマップフォントを等幅設定に動的に変換する
BitmapFontの便利Util集を作っているので、ちょいちょい紹介します。
上の画面のように、色々な文字つめのフォントを既存のフォントを元に作ります。各フォントが同じテクスチャを使っているので、ドローコールが1ですむのもポイントです。( TextFieldでなく、BitmapFont.createSpriteを使えば。)
プロポーショナルフォントを等幅フォントに変換する
等幅をにプロポーショナルに変換するのは難しいですが、逆は可能でした。BitmapFontUtilというものをご用意しております。実ソースのリンクは最後に。
var baseFont:BitmapFont = TextField.getBitmapFont("フォント名");
// 横幅16ptの固定幅フォントを作る
var monoSpaceFont1:BitmapFont =
BitmapFontUtil.cloneBitmapFontAsMonoSpaceFont("新フォント名1", baseFont, 16);
monoSpaceFont1.lineHeight = 16; // ついでにlineHeightも16に調整
一部の横幅のみ変更したフォントを作る
全体コピー時だけでなく、一部の設定上書きも可能です。コード一覧を扱いやすくするCharCodeUtilというクラスも作りました。
// フォントのコピーを取る(取らなくてもいいよ)
var monoSpaceFont2:BitmapFont =
BitmapFontUtil.cloneBitmapFont("新フォント名2", monoSpaceFont1);
// 一部文字のコード一覧を得る(CharCodeUtil)
var targetIdList:Vector.<int> = CharCodeUtil.getIdListByLetters("、。!?");
// 指定文字だけ半角に変換
BitmapFontUtil.setFixedWidth(monoSpaceFont2, 8, true, targetIdList);
一部のみ余白多めにしたフォントを作る
おまけでこんな事もできました。
余白多くする=offsetXとxAdvanceを増やす:xAdvanceにはoffsetX増加分も含める、です。
var padding:int = 8;
// フォントのコピーを取る(取らなくてもいいよ)
var yohakuFont:BitmapFont = BitmapFontUtil.cloneBitmapFont("新フォント名3", baseFont);
BitmapFontUtil.updatePadding(yohakuFont, padding, 0, padding*2,
// 一部文字のコード一覧を得る(CharCodeUtil)
CharCodeUtil.getIdListByLetters("ヨハクオオメ!"));
スペース系文字の幅を調整する
半角スペース、全角スペース、タブスペースの幅を直接設定できます。
var spacesFont:BitmapFont =
BitmapFontUtil.cloneBitmapFont("新フォント名4", baseFont);
BitmapFontUtil.setSpaceWidth(spacesFont, 6);
BitmapFontUtil.setZenkakuSpaceWidth(spacesFont, 14);
BitmapFontUtil.setTabWidth(spacesFont, 48);
フォント詳細情報をtraceする。
開発時に必要だったので、BitmapFontUtil.traceBitmapCharInfo(bitmapFont);
というのでtraceできるようにしました。
<Font:yohaku>
' '(12288) txsize:0*0 offset:0,0 xAdv:16
'、'(12289) txsize:3*2 offset:0,14 xAdv:5
'。'(12290) txsize:5*4 offset:0,12 xAdv:7
'!'(65281) txsize:2*10 offset:8,5 xAdv:20
' '(9) txsize:0*0 offset:0,0 xAdv:32
'?'(65311) txsize:8*10 offset:0,5 xAdv:10
' '(32) txsize:0*0 offset:0,0 xAdv:8
'ぁ'(12353) txsize:8*8 offset:0,8 xAdv:10
:
:
(以下略)
ソースなど
とりいそぎ以上です。BitmapFontUtilには他にも便利機能があります。なお、ビットマップフォントは別記事で紹介したShoeBoxで作りました。マイナーツールですが、便利です。
ShoeBox:ビットマップFONTを書き出してみる (#1紹介編)
ShoeBox:ビットマップFONTを書き出してみる (#2実践編)
ShoeBox:日本語ビットマップFONTを書き出してみる (#3実践編その2)
ShoeBox:ビットマップフォント書き出し設定の解説 (#4詳細編)
Author And Source
この問題について(可変幅ビットマップフォントを等幅設定に動的に変換する), 我々は、より多くの情報をここで見つけました https://qiita.com/harayoki/items/de2376c51fb752358dfc著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .