ゲーム開発ライブラリ

mplib 憩いの場

mplibとは

2Dゲーム(Widnowsアプリケーション)開発に最低限の機能を提供するライブラリファイルです。

ダウンロードはコチラから

※ダウンロードしたファイルによる一切の責任は負いかねます、ご了承ください。

 二次配布はご遠慮ください。mplibを使用したソフトを公開する場合は著作表示頂けますと幸いです。

 mplibを使用した作品のご報告・ご投函を歓迎致します、お問い合わせよりご連絡ください。

導入方法

あくまで一例なのでご使用の環境に合わせて設定してください。

VisualStudio2022 使用例

システム

ウィンドウ生成

mplibを初期化します。アプリケーションの先頭で呼び出してください。

void mlCreateWindow(const char* title, int width, int height, BOOL fullSize);

戻値:なし

引数:

アプリケーションウィンドウ横サイズ

アプリケーションウィンドウ縦サイズ

非0:フルウィンドウ

補足:取り扱う座標情報はスクリーン座標系です(左上起点の0~指定サイズになります)

アプリケーションの終了確認

int mlQuit(void);

戻値:

非0でメインループの終了待ちに入っている。

引数:なし

サンプル

#include <mplib.h>


int main()

{

// ウィンドウ生成 ※必ず初めに生成する事

mlCreateWindow("Sample", 640, 480, 0);


// アプリケーションの終了確認 ※×を押した場合など

while(!mlQuit())

{

// ゲームループ

}

}

描画バッファ

描画バッファ生成

mlBuffer mlCreateBuffer(void);

戻値:

描画バッファ

引数:なし

描画バッファクリア

指定の色で描画バッファを塗りつぶします。

void mlClearBuffer(mlBuffer pBuffer, int rgb);

戻値:なし

引数:

描画バッファ

塗りつぶし色(RGB値)

描画バッファのフリップ

アプリケーションウィンドウに描画バッファを反映します。

void mlFlip(mlBuffer pBuffer);

戻値:なし

引数:

描画バッファ

描画バッファの削除

描画バッファの削除、使用領域のメモリを解放します。

void mlReleaseBuffer(mlBuffer pBuffer);

戻値:なし

引数:

描画バッファ

サンプル

#include <mplib.h>


int main()

{

// ウィンドウ生成

mlCreateWindow("Sample", 640, 480, 0);


// 描画バッファ生成

mlBuffer drawBuffer = mlCreateBuffer();


// アプリケーションの終了確認

while(!mlQuit())

{

// 描画バッファの初期化

mlBufferClear(drawBuffer, mlRGB(0xFF, 0xFF, 0xFF));


// ~

// ゲームループ

// ~


// フリップ

mlBufferFlip(drawBuffer);

}

// 終了処理


// 描画バッファ削除

mlBufferRelease(drawBuffer);

}

描画バッファの指定座標の色情報取得

描画バッファ内の指定座標からRGB値を取得します。描画バッファ範囲外は不定です。

int mlGetColor(mlBuffer pBuffer, int x, int y);

戻値:

RGB値

引数:

描画バッファ

ウィンドウ座標X

ウィンドウ座標Y

プリミティブ描画

描画:点(1dot) .

void mlDrawPoint(mlBuffer pBuffer, int x, int y, int rgb);

戻値:なし

引数:

描画バッファ

ウィンドウ座標X

ウィンドウ座標Y

描画色(RGB値)

描画:線 ー

void mlDrawLine(mlBuffer pBuffer, int x1, int y1, int x2, int y2, int rgb);

戻値:なし

引数:

描画バッファ

始点:ウィンドウ座標X

始点:ウィンドウ座標Y

終点:ウィンドウ座標X

終点:ウィンドウ座標Y

描画色(RGB値)

描画:線(透過指定)ー

void mlDrawLineA(mlBuffer pBuffer, int x1, int y1, int x2, int y2, int rgb, int alpha);

戻値:なし

引数:

描画バッファ

始点:ウィンドウ座標X

始点:ウィンドウ座標Y

終点:ウィンドウ座標X

終点:ウィンドウ座標Y

描画色(GB値)

アルファ値(透過:0~255)

描画:矩形描画(中抜き)□

void mlDrawRect(mlBuffer pBuffer, int x, int y, int width, int height, int rgb);

戻値:なし

引数:

描画バッファ

ウィンドウ座標X

ウィンドウ座標Y

横幅

高さ

描画色(RGB値)

描画:矩形描画(中塗り)■

void mlDrawFillRect(mlBuffer pBuffer, int x, int y, int width, int height, int rgb);

戻値:なし

引数:

描画バッファ

ウィンドウ座標X

ウィンドウ座標Y

横幅

高さ

描画色(RGB値)

描画:矩形描画(中抜き:透過指定)□

void mlDrawRectA(mlBuffer pBuffer, int x, int y, int width, int height, int rgb, int alpha);

戻値:なし

引数:

描画バッファ

ウィンドウ座標X

ウィンドウ座標Y

横幅

高さ

描画色(RGB値)

アルファ値(透過:0~255)

描画:矩形描画(中塗り:透過指定)■

void mlDrawFillRectA(mlBuffer pBuffer, int x, int y, int width, int height, int rgb, int alpha);

戻値:なし

引数:

描画バッファ

ウィンドウ座標X

ウィンドウ座標Y

横幅

高さ

描画色(RGB値)

アルファ値(透過:0~255)

描画:楕円描画(中抜き)

void mlDrawOval(mlBuffer pBuffer, int x, int y, int width, int height, int think, int rgb);

戻値:なし

引数:

描画バッファ

ウィンドウ座標X

ウィンドウ座標Y

横幅

高さ

線幅(太さ)

描画色(RGB値)

描画:楕円描画(中塗り

void mlDrawFillOval(mlBuffer pBuffer, int x, int y, int width, int height, int rgb);

戻値:なし

引数:

描画バッファ

ウィンドウ座標X

ウィンドウ座標Y

横幅

高さ

描画色(RGB値)

描画:楕円描画(中抜き:透過指定)〇

void mlDrawOvalA(mlBuffer pBuffer, int x, int y, int width, int height, int think, int rgb, int alpha);

戻値:なし

引数:

描画バッファ

ウィンドウ座標X

ウィンドウ座標Y

横幅

高さ

線幅(太さ)

描画色(ARGB値)

アルファ値(透過:0~255)

描画:楕円描画(中塗り:透過指定)●

void mlDrawFillOvalA(mlBuffer pBuffer, int x, int y, int width, int height, int rgb, int alpha);

戻値:なし

引数:

描画バッファ

ウィンドウ座標X

ウィンドウ座標Y

横幅

高さ

描画色(RGB値)

アルファ値(透過:0~255)

ビットマップ(.bmp)

ビットマップ読み込み

指定ファイル(.bmp)を読み込みます。

mlBitmap mlLoadBmp(char bmpPath[]);

戻値:

ビットマップ型情報

引数:

ビットマップファイルへのファイルパス

ビットマップ読み込み(透過色指定

指定ファイル(.bmp)を読み込みます。指定したマスク色は描画されません。

mlBitmap mlLoadBmpT(char bmpPath[], int rgb);

戻値:

ビットマップ型情報

引数:

ビットマップファイルへのファイルパス

マスク色指定(RGB値)

ビットマップ情報:横幅取得

int mlGetBmpWidth(mlBitmap pBitmap);

戻値:

横幅

引数:

ビットマップ型情報

ビットマップ情報:高さ取得

int mlGetBmpHeight(mlBitmap pBitmap);

戻値:

高さ

引数:

ビットマップ型情報

ビットマップ削除

void mlReleaseBmp(mlBitmap pBitmap);

戻値:なし

引数:

ビットマップ型情報

ビットマップ描画

読み込んだビットマップ情報を指定座標(左上起点)に描画します。

void mlDrawBmp(mlBuffer pBuffer, int x, int y, mlBitmap pBitmap);

戻値:なし

引数:

描画バッファ

ウィンドウ座標X

ウィンドウ座標Y

ビットマップ型情報

ビットマップ描画:拡縮

読み込んだビットマップ情報を指定座標(左上起点)に大きさを指定し描画します。

void mlDrawBmpScale(mlBuffer pBuffer, int x, int y, int width, int height, mlBitmap pBitmap);

戻値:なし

引数:

描画バッファ

ウィンドウ座標X

ウィンドウ座標Y

横幅

高さ

ビットマップ型情報

ビットマップ描画:拡縮 + ビットマップ位置指定

読み込んだビットマップ情報を指定座標(左上起点)に大きさを指定し、任意のビットマップ位置・大きさ分を描画します。

void mlDrawBmpCoord(mlBuffer pBuffer, int x, int y, int width, int height, mlBitmap pBitmap, int sx, int sy, int swidth, int sheight);

戻値:なし

引数:

描画バッファ

ウィンドウ座標X

ウィンドウ座標Y

横幅

高さ

ビットマップ型情報

ビットマップ位置(左上隅)X

ビットマップ位置(左上隅)

ビットマップ大きさ指定横幅

ビットマップ大きさ描画指定高さ

ビットマップ描画:拡縮 + ビットマップ位置指定 + 指定軸回転

読み込んだビットマップ情報を指定座標(左上起点)に大きさを指定し、任意のビットマップ位置・大きさ分を起点座標から指定度数回転させて描画します。

void mlDrawBmpRotate(mlBuffer pBuffer, int x, int y, int width, int height, mlBitmap pBitmap, int sx, int sy, int swidth, int sheight, int cx, int cy, double rotate);

戻値:なし

引数:

描画バッファ

ウィンドウ座標X

ウィンドウ座標Y

横幅

高さ

ビットマップ型情報

ビットマップ位置(左上隅)X

ビットマップ位置(左上隅)Y

ビットマップ大きさ指定横幅

ビットマップ大きさ描画指定高さ

回転軸座標X

回転軸座標

角度(時計回り)

ビットマップ描画:拡縮(透過指定)

読み込んだビットマップ情報を指定座標(左上起点)に大きさを指定し描画します。

void mlDrawBmpScaleA(mlBuffer pBuffer, int x, int y, int width, int height, mlBitmap pBitmap, int alpha);

戻値:なし

引数:

描画バッファ

ウィンドウ座標X

ウィンドウ座標Y

横幅

高さ

ビットマップ型情報

アルファ値(~255)

ビットマップ描画:拡縮 + ビットマップ位置指定(透過指定)

読み込んだビットマップ情報を指定座標(左上起点)に大きさを指定し、任意のビットマップ位置・大きさ分を描画します。

void mlDrawBmpCoordA(mlBuffer pBuffer, int x, int y, int width, int height, mlBitmap pBitmap, int sx, int sy, int swidth, int sheight, int alpha);

戻値:なし

引数:

描画バッファ

ウィンドウ座標X

ウィンドウ座標Y

横幅

高さ

ビットマップ型情報

ビットマップ位置(左上隅)X

ビットマップ位置(左上隅)Y

ビットマップ大きさ指定横幅

ビットマップ大きさ描画指定高さ

アルファ値(~255)

ビットマップ描画:拡縮 + ビットマップ位置指定 + 指定軸回転

読み込んだビットマップ情報を指定座標(左上起点)に大きさを指定し、任意のビットマップ位置・大きさ分を起点座標から指定度数回転させて描画します。

void mlDrawBmpRotateA(mlBuffer pBuffer, int x, int y, int width, int height, mlBitmap pBitmap, int sx, int sy, int swidth, int sheight, int cx, int cy, double rotate, int alpha);

戻値:なし

引数:

描画バッファ

ウィンドウ座標X

ウィンドウ座標Y

横幅

高さ

ビットマップ型情報

ビットマップ位置(左上隅)X

ビットマップ位置(左上隅)Y

ビットマップ大きさ指定横幅

ビットマップ大きさ描画指定高さ

回転軸座標X

回転軸座標Y

角度(時計回り)

アルファ値(~255)

サウンド ※主にSE用

WAVデータ:読み込み

指定ファイル(.wav)を読み込みます

mlWAV mlLoadWAV(const char* wavPath);

戻値:

WAVデータ型情報

引数:

WAVファイルへのファイルパス

WAVデータ:再生

void mlPlayWAV(mlWAV pSound, int loop);

戻値:なし

引数:

WAVデータ型情報

非0でループ再生指定

WAVデータ:停止

void mlStopWAV(mlWAV pSound);

戻値:なし

引数:

WAVデータ型情報

WAVデータ:削除

void mlReleaseWAV(mlWAV pSound);

戻値:なし

引数:

WAVデータ型情報

サウンド(重ねて再生できません)※主にBGM

サウンドデータ:読み込み

指定ファイル(wav・mp3・mid)を読み込みます

mlSnd mlLoadSnd(const char* sndPath);

戻値:

サウンドデータ型情報

引数:

サウンドファイル(wav・mp3・mid)へのファイルパス

サウンドデータ:再生

単チャネルのため再生中のサウンドデータは停止します。

void mlPlaySnd(mlSnd pSound, int loop);

戻値:なし

引数:

サウンドデータ型情報

非0でループ再生指定

サウンドデータ:停止

void mlStopSnd(mlSnd pSound);

戻値:なし

引数:

サウンドデータ型情報

サウンドデータ:一時停止

void mlPauseSnd(mlSnd pSound);

戻値:なし

引数:

サウンドデータ型情報

サウンドデータ:再生(再開)

void mlResumeSnd(mlSnd pSound);

戻値:なし

引数:

サウンドデータ型情報

サウンドデータ:削除

void mlReleaseSnd(mlSnd pSound);

戻値:なし

引数:

サウンドデータ型情報

テキスト

フォントデータ作成

mlFont mlFontCreate(int size, int bold, const char* face);

戻値:

フォント型データ

引数:

フォント大きさ(高さ)

1:ボールド指定(文字を太く)

フォント名

テキスト表示

int mlPrintf(mlBuffer pBuffer, int x, int y, mlFont font, int rgb, const char* format, ...);

戻値:

表示文字列幅(width)

引数:

描画バッファ

ウィンドウ座標X

ウィンドウ座標Y

フォント型データ ※NULL=デフォルトフォント

色指定(RGB値)

表示文字列(可変長)

テキスト表示(アンカー指定+透過指定)

int mlPrintf2(mlBuffer pBuffer, int x, int y, mlFont font, int anchor, int argb, const char* format, ...);

戻値:

表示文字列幅(width)

引数:

描画バッファ

ウィンドウ座標X

ウィンドウ座標Y

フォント型データ ※NULL=デフォルトフォント

-1:左揃え 0:中央ぞろえ 1:右揃え

色指定(ARGB値)

表示文字列(可変長)

フォントデータ削除

void mlFontRelease(mlFont font);

戻値: なし

引数:

フォント型データ

入力

キー入力情報取得

int mlGetKeyState(int nVirtKey);

戻値: 

非0で押している

引数:

仮想キーコード

マウス位置(ウィンドウ座標)取得

void mlGetMousePos(int* x, int* y);

戻値: なし

引数:

マウス位置ウィンドウ座標X 格納先ポインタ

マウス位置ウィンドウ座標Y 格納先ポインタ

マウス位置(ウィンドウ座標)設定

void mlSetMousePos(int x, int y);

戻値: なし

引数:

ウィンドウ座標X

ウィンドウ座標Y

ユーティリティ

経過時間取得

アプリケーション起動時からの経過時間(ミリ秒)を取得

mlTime mlGetTime(void);

戻値:

経過時間(ミリ秒)

引数:なし

指定(ミリ)秒待機

指定秒、処理が止まります。

void mlWait(mlTime ms);

戻値:なし

引数:

待機時間(ミリ秒)