こんにちは。今回から、複数回にわけてDxライブラリでRPGを作っていきます。
Unityではなく、DxLibを使う理由は、Unityではアセットや基本機能に頼ってしまい、肝心のコードを書きプログラミングを学ぶところから、外れてしまうと思ったからです。
※DxLibとはDXライブラリのことです。
次回記事はこちら。
ウィンドウ表示
まず、最初はウィンドウを出すところからやっていきましょう。
#define WIN_X (256)
#define WIN_Y (224)
#include <DxLib.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); //裏画面描画
while (ScreenFlip() == 0 &&
ClearDrawScreen &&
ProcessMessage() == 0
)
{
}
WaitKey();
DxLib_End();
return 0;
}
これで、DxLibでウィンドウを表示することができます。
Window初期化の部分は、コピーでいいです。
#defineで定義したWIN_XとWIN_Yはウィンドウ解像度なので自由に変えてもらって大丈夫です。
画像の読み込み
次にゲームで使う画像を読み込んでいきます。読み込む画像は敵キャラとプレイキャラとマップチップです。
↑スライム
↑スライムベス
↑主人公
↑マップチップ
↑角の隙間を埋める草
↑川に面した草
↑川に面した草2
これらを読み込み、画像をDxLibで分割して、画面に表示します。では、画像を読み込むコードを書いていきましょう。
新しくPicture.hというファイルを生成します。
#pragma once
/* Picture.h */
class PICTURE
{
public:
int Map[16];
int Grace_River[4];
int Grace_River2[4];
int Fill_Grace[4];
int Player[12];
int Slime[2];
int SlimeBeth[2];
void Load()
{
LoadDivGraph("Picture/Maps/MapChip.png", 16, 4, 4, 16, 16, Map); //マップ読み込み
LoadDivGraph("Picture/Maps/grass_near_river.png", 4, 2, 2, 16, 16, Grace_River);
LoadDivGraph("Picture/Maps/grass_near_river2.png", 4, 2, 2, 16, 16, Grace_River2);
LoadDivGraph("Picture/Maps/Fill_grass.png", 4, 2, 2, 16, 16, Fill_Grace);
LoadDivGraph("Picture/Players/Player.png", 12, 1, 12, 16, 16, Player);
LoadDivGraph("Picture/Enemys/Slime.png", 2, 2, 1, 16, 16, Slime);
LoadDivGraph("Picture/Enemys/SlimeBeth.png", 2, 2, 1, 16, 16, SlimeBeth);
};
private:
};
PICTURE Picture;
Picture.hにPICTUREクラスを追加し、画像を読み込むLoadメンバ関数を作ります。
LoadDivGraph関数は画像を分割して、保存する関数です。
よく使うのでリファレンスを確認しておくとよいです。
上のコードをMain.cppにインクルードし、Load関数を実行すれば画像の読み込み完成です。
画像の表示
では、読み込んだ画像を表示してみましょう。表示するには、Main関数に少し付け足します。
#define WIN_X (256)
#define WIN_Y (224)
#include <DxLib.h>
#include "Picture.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); //裏画面描画
Picture.Load();
while (ScreenFlip() == 0 &&
ClearDrawScreen &&
ProcessMessage() == 0
)
{
DrawGraph(0, 0, Picture.Player[0], TRUE);
}
WaitKey();
DxLib_End();
return 0;
}
DrawGraph関数は画像を表示する関数です。使用は以下の通りです。
こちらもよく使う関数なのでより詳しく知りたい方は、リファレンスを確認するとよいと思います。
実行すると無事表示されました
これで、画像を表示することができます。
まとめ
第一回では、ウィンドウの表示と画像の読み込み・表示をしてみました。次回は、マップを表示していきます。
最後まで読んで頂き、ありがとうございました。ツイッターもやっているので確認して見て下さい。
次回はこちら。
コメント