#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <direct.h>
#include <string>
#include "DxLib.h"
#include "MyLib.h"
#include "scene.h"
extern bool CLOSE_FLAG;
extern SceneBase* SCENE, * NEXT_SCENE;
extern unsigned char MAPDATA_TMP[20 + 64 * 64];
extern unsigned char MAPDATA[64][64];
extern int MAP_X, MAP_Y, POS_X, POS_Y;
extern int MY_POS_X, MY_POS_Y;
extern int MOVE_STEP;
extern int GHANDLE1[256];
extern int HANDLE1;
// プログラムは WinMain から始まります
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
int code = 0;//code==0 成功 code==-1 失敗
// タイトルを プリンセスクエスト~恐怖のエクソダス~ に変更
SetMainWindowText("プリンセスクエスト~恐怖のエクソダス~");
// 画面モードの設定
SetGraphMode(640, 480, 32);
// ウインドウモードに変更
ChangeWindowMode(TRUE);
//ウインドウモードの時のウインドウの大きさと描画画面の大きさの比率を設定する
SetWindowSizeExtendRate(2.0);
// フルシーンアンチエイリアスを設定する
SetFullSceneAntiAliasingMode(0, 0);
if (DxLib_Init() == -1){ return -1; }// DXライブラリ初期化処理// エラーが起きたら直ちに終了
// メインウインドウの×ボタンを押した時にライブラリが自動的にウインドウを閉じるかどうかのフラグをセットする
int SetWindowUserCloseEnableFlag(false);
back_screen_making();//裏画面を作成
Loading_SE_files();//サウンドファイルの読み込み
SCENE = new Title;//基本クラスのポインタに代入
NEXT_SCENE = SCENE;
while ((!CLOSE_FLAG) && (code == 0)) {
SCENE->main();//派生クラスのmain()を実行
//シーンチェンジ
if (SCENE != NEXT_SCENE) {
delete SCENE;
SCENE = NEXT_SCENE;
}
code = WaitTimer(1);//ウェイト0.1秒 code==0 成功 code==-1 失敗
}
delete_back_screen();//裏画面の削除
Delete_SE_files();//サウンドファイルの削除
DxLib_End(); // DXライブラリ使用の終了処理
return 0; // ソフトの終了
}
こんな感じで、ポリモーフィズムを実装しています。
RGSSと同じですね。