DxライブラリでRPGを作る② -必要データの読み込み-

C++

 こんにちは。第一回の内容を把握していることを前提に本記事を書いていくので、前回の記事を読んでいない方はこちらから読んでいってください。

 今回は、フォントの読み込み、キーの取得、色の読み込みをやっていきます。

フォントの読み込み

 では、まずフォントの読み込みをやっていきます。新しくSub.hを作り、Fontクラスを作成します。

/* Sub.h */
#pragma once

class
{
public:

	int c[50 + 1];

	void Load()
	{
		for (int i = 0; i < 50 + 1; i++)
		{
			c[i] = CreateFontToHandle("MS ゴシック", i, 6, DX_FONTTYPE_NORMAL);
		}
	}
private:
}Font;

 CreateFontHandle関数はフォントを読み込む関数です。

CreateFontHandle(“作成するフォント名”, フォントサイズ, フォントの太さ, フォントタイプ)

https://dxlib.xsrv.jp/function/dxfunc_graph2.html#R17N10

 配列cはフォントの大きさです。フォントの種類は50種類作りました。

色の読み込み

 次に色を読み込んでいきます。さきほどと同じSub.hにColorクラスを作成します。先ほど作ったFontクラスに加えて下さい。

/*Sub.h*/

#pragma once

class
{
public:

	int WHITE;
	int RED;
	int GREEN;
	int BLUE;
	int BLACK;

	void Load()
	{
		WHITE = GetColor(255, 255, 255);
		RED = GetColor(255, 0, 0);
		GREEN = GetColor(0, 255, 0);
		BLUE = GetColor(0, 0, 255);
		BLACK = GetColor(0, 0, 0);
	}
private:
}Color;

 GetColor関数はRGBで色を取得しています。

 これで、Colorクラスは完成しました。

キーの取得

 では、最後にきーを取得していきます。さきほどのSub.hに以下のコードを付け加えて下さい。

/* Sub.h */
int Key[256];

int GetKey()
{
	char allKey[256];
	GetHitKeyStateAll(allKey);

	for (int i = 0; i < 256; i++) {
		if (allKey[i] != 0)
		{
			Key[i]++;
		}
		else 
		{
			Key[i] = 0;
		}
	}
	return 0;
}

 コードはこちらのページを参考にしました。

 これで、キーの押下状況を取得できました。

Main関数にインクルード

 最後に今まで作ったコードをMain関数にインクルードしていきます。

/* Main.cpp */
#define WIN_X (256)
#define WIN_Y (240)

#include <DxLib.h>
#include "Picture.h"
#include "Sub.h"

//#include "Title.h"

int WINAPI WinMain(
    _In_ HINSTANCE hInstance,
    _In_opt_ HINSTANCE hPrevInstance,
    _In_ LPSTR IpCmdLine,
    _In_ int nShowCmd)
{
    ChangeWindowMode(TRUE);
    DxLib_Init();

    /*Window初期化*/
    SetWindowText("DRAGON QUEST");
    SetGraphMode(WIN_X, WIN_Y, 32);
    SetBackgroundColor(255, 255, 255);
    SetDrawScreen(DX_SCREEN_BACK);
    SetWindowSize(1024, 960);

    Picture.Load();
    Color.Load();
    Font.Load();

    while (ScreenFlip() == 0 &&
        ClearDrawScreen &&
        ProcessMessage() == 0 &&
        GetKey() == 0 &&
        Key[KEY_INPUT_ESCAPE] == 0
        )
    {
        DrawFormatStringToHandle(0, 0, Color.WHITE, Font.c[30], "HELLO WORLD");
    }

    WaitKey();
    DxLib_End();
    return 0;
}

 これを実行すると、以下になります。

 「Hello World」の文字が表示されました。

まとめ

 今回は、キーの押下状況の取得, 色の読み込み, フォントの読み込みを行いました。

 次回からは、今回行った文字の読み込み, フォントの読み込みを使い、タイトル画面を作っていきます。

 最後まで読んで頂き、ありがとうございました。ツイッターもやっているので確認して見て下さい。

コメント

タイトルとURLをコピーしました