ChangeFontType

文字列描画に使用するフォントのタイプを変更する

ChangeFontType FontType

int FontType : フォントのタイプ
( -1                   : デフォルトフォント(DX_FONTTYPE_NORMAL と同じ)
DX_FONTTYPE_NORMAL      : ノーマルフォント
DX_FONTTYPE_EDGE        : エッジつきフォント
DX_FONTTYPE_ANTIALIASING    : アンチエイリアスフォント
DX_FONTTYPE_ANTIALIASING_4X4   : アンチエイリアスフォント( 4x4サンプリング )
DX_FONTTYPE_ANTIALIASING_8X8   : アンチエイリアスフォント( 8x8サンプリング )
DX_FONTTYPE_ANTIALIASING_EDGE   : アンチエイリアス&エッジ付きフォント
DX_FONTTYPE_ANTIALIASING_EDGE_4X4 : アンチエイリアス&エッジ付きフォント( 4x4サンプリング )
DX_FONTTYPE_ANTIALIASING_EDGE_8X8 : アンチエイリアス&エッジ付きフォント( 8x8サンプリング ) )

(プラグイン / モジュール : DxLibW)

解説

DrawString』関数等で描画する文字のタイプを変更します。

タイプの変更とは、文字に縁取りを付けるか、綺麗な文字にするか、などです。
上記のいずれかの引数を関数に渡すことによりフォントのタイプを変更することが出来ます。

DX_FONTTYPE_NORMAL は普通のフォントです。アンチエイリアスなし、
エッジなしのもっとも高速に描画処理を行えるフォントです。
ただし見た目はあまりよくありません。

DX_FONTTYPE_EDGE はエッジつきフォントです。

エッジとは文字の縁のことです、
エッジフォントとは文字の輪郭を文字のメインの色とは違う色でなぞることでノーマルフォントよりも見やすくしたフォントです。

DX_FONTTYPE_ANTIALIASING はアンチエイリアスフォントです。

エイリアスとは解像度が低いがために目立ってしまう、
例えば文字の輪郭のギザギザのことなどを示します。
(640x480などの解像度の低い画面モードではドットがくっきり見えてしまうのでこの現象が発生します、
デスクトップ画面などで使われている画面モードは通常 1024x768 以上なので、
ギザギザしていても大して気にならないのです)

このエイリアスを抑えたフォントがアンチエイリアスフォントです。

具体的には文字をベタッと画面に描画するのではなく、
書き込まれる画面に溶け込むように描画します。

DX_FONTTYPE_ANTIALIASING_4X4 もアンチエイリアスフォントです。

DX_FONTTYPE_ANTIALIASING と同じくアンチエイリアス付きのフォントですが、
DX_FONTTYPE_ANTIALIASING とは異なる方式でアンチエイリアス処理を行っていて、
通常は DX_FONTTYPE_ANTIALIASING よりも良好な描画結果が得られます。
( DX_FONTTYPE_ANTIALIASING ではフォントサイズが小さい場合に文字の太さが歪になったりすることがあります )

処理負荷は DX_FONTTYPE_ANTIALIASING と同じくらいです。

DX_FONTTYPE_ANTIALIASING_8X8 もアンチエイリアスフォントです。

DX_FONTTYPE_ANTIALIASING_4X4 と同じ方式でより精度の高い描画結果が得られます。
が、DX_FONTTYPE_ANTIALIASING_4X4 よりも処理負荷が高くなります。

精度が高いと言ってもよく見ないと DX_FONTTYPE_ANTIALIASING_4X4 との違いが分からない程度なので、
分からない程度でもできる限り綺麗な文字を描画したいという場合以外はあまり使う意味はありません。

DX_FONTTYPE_ANTIALIASING_EDGE はエッジつきアンチエイリアスフォントです。

上記のアンチエイリアスフォントにエッジをつけたタイプです。エッジも
画面に溶け込むように描かれます。


DX_FONTTYPE_ANTIALIASING_EDGE_4X4 もエッジ付きアンチエイリアスフォントです。

DX_FONTTYPE_ANTIALIASING_EDGE のアンチエイリアス処理は DX_FONTTYPE_ANTIALIASING と同じ方式ですが、
それを DX_FONTTYPE_ANTIALIASING_4X4 と同じ方式にしたものです。


DX_FONTTYPE_ANTIALIASING_EDGE_8X8 もエッジ付きアンチエイリアスフォントです。

DX_FONTTYPE_ANTIALIASING_EDGE_4X4 よりもアンチエイリアス処理の精度を上げたものです。


<<注意>>

ChangeFontType は負荷の重い処理なので、頻繁に ChangeFontType を呼ぶ必要がある場合は関数
CreateFontToHandle で予め必要なフォントタイプのフォントを作成しておくようにして
ChangeFontType を頻繁に呼ばないようにすることをお勧めします。




<裏話 エッジ(縁)の色は指定できないのか!?>

通常エッジは黒で描画されますが、実際はこのエッジ色も指定することが
出来ます。DrawFormatString と DrawFormatStringToHandle を除くすべての
文字列描画関数の一番後ろにカラーコードを入力することで、エッジのカラーを
指定することが出来ます。


例

// エッジカラー指定なし文字色白

DrawString( 0 , 0 , "DXライブラリ" , GetColor( 255,255,255 ) ) ;

// エッジカラー指定、青、文字色は白

DrawString( 0 , 0 , "DXライブラリ" ,
GetColor( 255,255,255 ), GetColor( 0,0,255 ) ) ;

// エッジカラー指定なし文字色白

DrawStringToHandle( 0 , 0 , "DXライブラリ" ,
GetColor( 255,255,255 ), FontHandle ) ;

// エッジカラー指定、青、文字色は白

DrawStringToHandle( 0 , 0 , "DXライブラリ" ,
GetColor( 255,255,255 ),
FontHandle, GetColor( 0,0,255 ) ) ;

仕様の関係上 DrawFormatString と DrawFormatStringToHandle 関数は
残念ながらエッジ色を指定することは出来ません。エッジカラー指定を
書式付文字列描画 で使用したい場合などはCの標準関数である sprintf 関数
との組み合わせで実現してください。

戻り値:
  0:成功

情報

プラグイン / モジュールDxLibW
バージョン3.24f
作成日2026/04/12
著作者DxLib: Takumi Yamada / HSP binding: IronHSP Project
URLhttps://dxlib.xsrv.jp/
備考hspdxlib.as をインクルードして使用
タイプDxLib ゲームライブラリ
グループDxLib フォント
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\hspdxlib.hs