0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【DXライブラリ】好きなフォントを使えるようにする

Last updated at Posted at 2024-12-27

はじめに

DXライブラリで好きなフォントを表示したい際に見てください

ゲーム起動時にPCにフォントがインストールされていないことを考慮しています

今回の主役

AddFontResourceExA - < Windows.h >

Windowsにフォントをシステム終了時まで読み込ませます

RemoveFontResourceExA - < Windows.h >

AddFontResourceExAで読み込んでいたデータを破棄します

CreateFontToHandle - "DxLib.h"

好きなフォントをDXライブラリ用に作成します

DrawStringToHandle - "DxLib.h"

CreateFontToHandleで作成したフォントハンドルを使用し、文字を描画します

フォントダウンロード

今回はこのサイト様でダウンロードさせていただきました。

フォント配置

フォント(.ttfファイル)をプロジェクトフォルダ近くに移動します

スクリーンショット 2024-12-27 233613.png

フォント名を確認

.ttfファイルをダブルクリックし、フォント名を確認

スクリーンショット 2024-12-27 233627.png

このフォントでは「モギハ・ペン字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;
}

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?