はじめに
DXライブラリで好きなフォントを表示したい際に見てください
ゲーム起動時にPCにフォントがインストールされていないことを考慮しています
今回の主役
フォントダウンロード
今回はこのサイト様でダウンロードさせていただきました。
フォント配置
フォント(.ttfファイル)をプロジェクトフォルダ近くに移動します
フォント名を確認
.ttfファイルをダブルクリックし、フォント名を確認
このフォントでは「モギハ・ペン字Font」がフォント名です。
他のフォントを使用する際には
CreateFontToHandle引数のchar *FontName をそのフォント名に変更してください
実装
main
#include "DxLib.h"
#include <Windows.h>
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
ChangeWindowMode(true);
SetGraphMode(1000, 1000, 32);
if (DxLib_Init() == -1) return -1;
SetDrawScreen(DX_SCREEN_BACK);
// ウィンドウズPCに一時的にフォントデータを読み込む(システム終了まで)
// NOTE: .ttf→フォントデータ(トゥルータイプフォントの略)
AddFontResourceExA("mogihaPen.ttf", FR_PRIVATE, NULL);
// フォントハンドルの作成
int fontHandle = CreateFontToHandle("モギハ・ペン字Font", 20, 3, DX_FONTTYPE_ANTIALIASING);
// ゲームループ
while (ProcessMessage() == 0 && CheckHitKey(KEY_INPUT_ESCAPE) == 0)
{
// 裏画面をクリア
ClearDrawScreen();
// フォントを利用して文字を描画
DrawStringToHandle(0, 0, "自分のフォント123ABC", GetColor(255, 255, 255), fontHandle);
// テストフォント描画
DrawFormatString(0, 50, GetColor(255, 255, 255), "デフォルト123ABC");
// 裏画面と表画面を入れ替え
ScreenFlip();
}
// フォントハンドルを削除
DeleteFontToHandle(fontHandle);
// ウィンドウズに一時的に保持していたフォントデータを削除
RemoveFontResourceExA("", FR_PRIVATE, NULL);
// DXライブラリ使用の終了
DxLib_End();
// ソフトの終了
return 0;
}