2016年 ~8月23日
なんてシャレを言ってる場合じゃ無くて。
どうも HSP Dishでは font命令が機能してないらしくて、どうやってもシステムフォントが表示される。
システムフォントはデバイス(機種とかブラウザ)によって違ってるらしくて、この場合は FixedSysというものらしいのだが、例によって何の事か分からん。
ググッてみたら、どうも普通にあるフォントの一つらしくて、グラフィックソフトの選択画面等には表示されない設定になっていて、メモ張に使われているフォントだとかいう事のようだ。
どうも例によって HSPの情報は少なくてよく分からない。
とりあえず font命令で何書いても、全部 FixedSysのフォントで表示されてるらしくて変化しない。
どうしてなのかも、やり方も分からない。
ちなみにこれはウインドウズ上での起動の場合で、mes命令で表示した文字はデバイスやブラウザによって異なる。
ブラウザによっては青い文字で表示されたりして、流石に「何で?」と思ったりする。
そんな訳だから、やっぱり原則全部文字をグラフィックにして準備するしか無い様だ。
こんなカードゲームならまだしも RPGのセリフとか、どうなるんだろう?
まあその辺はまた棚上げにするとして。
フォント情報のまとめ
MSゴシック、MS明朝、メイリオについては Windows上で制作したものであれば、一応商用利用も可能らしい。
確証は無いので各自確認、自己責任で。
ただしフォント(.ttfファイルみたいの)を同封(再配布に当たる)してとかいうのはダメみたい。
その他のフォントについてはそれぞれについて調べる必要があるみたい。
例えば HGシリーズはリコーの著作権らしくて使えないみたい。
フリーフォントとしては、花園フォントや、M+フォント、IPAフォントみたいのがある。
それからビットマップフォントと言われるものにもフリーのものがあるみたい。
沢山あるみたいなので探したら良いだろう。
いや、MSゴシック最強論なら、始めからそれだけにするとかでも良いのかな?
ではフォントのグラフィック化を始める
まずはオプション画面から。
ザ・グラフィックスで描く
グリッドは 16ドット、文字の大きさは 30ピクセル。
フォントは試してみて花園フォントの太字にした。
花園フォントはフリーの割りに綺麗な日本語が表示されるのであなどれない。
置き換え
う~ん、字が小さかったような気がする。
でなければ太字じゃなくて普通の方が良かったか。
位置を微調整して、時間が無いのでとりあえずこのまま次へ。
次はこれ、町の表示
描いて
今回は MSゴシックで 32ピクセル。
MSゴシックもメイリオと同じで、グラフィック化なら何も言われないはず。
まあグレーだけど、個人の同人程度なら何も言われないだろうとは思う。
置き換える
て、アレ?これどう見ても元のと同じだよね。
と言う事はデフォルトのフォントは FixedSysじゃ無くて MSゴシックだったって事????
その辺がどうなのかはサッパリ分かりません。
位置を整えて、と
う~ん、やっぱり MSゴシック最強説?・・・
ちなみにこの NORMALとか表示してるのは、画像化したアルファベットを置き換える方法(ビットマップフォントとか言われるもの)
こんな感じで描いたのを
適当にこんな感じで表示してる
;----------- 文字表示 -------------------------------- #module #deffunc ap str s,int x,int y,int t ; 英数字スモール、文字列 ; s=文字列、x=x座標、y=y座標、t=文字色 ss=s sg=strlen(s) ; 文字長さ、個数 t2=t*32 ; 文字色 repeat sg ; 文字の数だけ繰り返し n=peek(ss,cnt) ; 1文字読み出し if n=32 : continue ; " " pos x+cnt*11,y if n>=65 and n<=90 : n2=n-65 : celput 6,n2+t2 : continue ; アルファベット if n>=97 and n<=122 : n2=n-97 : celput 6,n2+t2 : continue ; アルファベット if n>=48 and n<=57 : n2=n-48 ; 数字 if n=47 : n2=28 ; / if n=40 : n2=26 ; ( if n=41 : n2=27 ; ) ;if n=46 : n2=13 ; . ;if n=43 : n2=14 ; + ;if n=45 : n2=15 ; - celput 6,n2+t2 ; 表示 loop return #global
数字版もある
字はドットエディッターの ALFARで描いてる。
#module ; 数字表示 #deffunc fp2 int n,int x,int y,int t ; 数字put 10_16 ns=str(n) ; 文字に変換 nb=strlen(ns) ; 個数確認 t2=t*10 repeat nb : cn=cnt n2=peek(ns,cnt) : n3=n2-48+t2 pos x+cnt*11,y : celput 2,n3 loop return #global
使い方はこんな感じ。
ap “文字表示”,100,100,0
fp2 8376,100,100,0
この辺のは、もし使いたいという人がいれば黙って使ってもらって構わない。
それにしてもこの方法は、漢字のある日本語では使いづらい、ひらカナくらいはできるんだろうけど・・・・
最後にステージ表示とmob名表示だ。
ステージ文字を作って
フロア数を作って
ってあれ?これ階じゃなくて Fになってるよ。
mob名文字を作って
mobの使う技名を作って
後チョコチョコと直して。
最後にオプションを MSゴシックで描き直し。
花園フォントは明朝体らしくて、明朝体は細いので少し太いゴシック体のほうが普遍性があるかもしれない。
う~ん、めんどくさい。
何か別の方法を考えないと、多くなると大変だ。