BMPフォントを作る


2018年 1月15日
 
 
 今回は表示関連の一貫として、ダメージ表示の数字が小さいので、それように大きい数字フォントを作りたいと思います。
 
 
 大きさは 28ドットで、これくらいの大きさになると手描きはめんどうなので、PCのフォントを使います。

 MSゴシックとメイリオは「ウインドウズ上で加工した画像なら、商用に使ってもOK」と灰色の仕様らしいので、やはり見た目に良い MSゴシックをとりあえず使ってみます。

 
 まず画像の大きさは、数字 0~9の 10コなので x=280の y=28です


 
 

 
 
 文字の色を選んだら


 
 
 文字ツールで文字を書きます

 フォントは MSゴシック、大きさは 28ドット。
 
 

 
 
 グリッドを半分の 14ドットで表示


 
 
 数字が真ん中になるように調整します

 しかし The Graphicsのグリッド表示は点なので見難い。
 
 
 次に文字のレイヤーの下に透明レイヤーを足します


 
 
 選択範囲の拡張で選択範囲を 2ドット拡張します


 
 
 こんな感じで選択範囲が拡張されます


 
 
 黒い色(縁(ふち)の色)を選んだら


 
 
 選択範囲を塗りつぶします


 
 
 すると数字の縁取りができます


 
 
 つまり下のレイヤーはこうなってます。


 
 
 さらに新規レイヤーを足して、選択範囲を拡張し、別の色で縁を作ると

 背景が複雑でも見えるような 2重の縁になります。
 
 
 
 サンプル、今回はMSゴシックと言う事で、良く分からないので 2次配布に当たらないように画像に SAMPLEが入ってます。


 
 
 ソース、HSP Dish用のプログラムです。

#include "hsp3dish.as"

gosub *main : end


#deffunc fp int fpn,int x,int y ; figure数字表示
; s=数字値、x=x座標、y=y座標

	s=str(fpn)		; 一度文字にしないとコードが取れない?
	sg=strlen(s)	; 文字長さ、個数

	gmode 2

	repeat sg			; 文字の数だけ繰り返し
	 n=peek(s,cnt)		; 1文字読み出し、n=アスキーコード

	  pos x+cnt*17,y
	   if n>=48 and n<=57 : n2=n-48	; 数字

	  celput 1,n2		; 表示
	loop

	return


*main

	celload "fg_MSG28.png",1
	 celdiv 1,28,28

	randomize
	 r=rnd(100000)

	repeat
	 redraw 0
	  color 255,255,255 : boxf

	  fp r,100,100

	  await 1000/20
	 redraw 1
	loop

	return

 
 
 
 これは 6色作ったもの

 太字の方がいいかなあ。

 まだ調整がいるようです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です