前回のような二重インクルードなどはないと思うのですが、、、。
1870:プログラマブルシェーダーを使用します
2128:フォントの初期化を行います
2171:フォントの初期化は正常に終了しました
2190:文字コードバッファの初期化を行います... 完了しました
GameProg.exe の 0x00b5cae3 で初回の例外が発生しました: 0xC0000005: 場所 0x00000000 を読み込み中にアクセス違反が発生しました。
GameProg.exe の 0x00b5cae3 でハンドルされていない例外が発生しました: 0xC0000005: 場所 0x00000000 を読み込み中にアクセス違反が発生しました。
プログラム '[6936] GameProg.exe: ネイティブ' はコード -1073741819 (0xc0000005) で終了しました。
-StageManeger.h-
#pragma once
#include "Types.h"
class StageManeger
{
public:
virtual void draw() = 0;
virtual void next_stage() = 0;
};
-Stage1.h-
#pragma once
#include "StageManeger.h"
#include "Player.h"
struct Player;
class Stage1 : public StageManeger
{
int s1_graph;
public:
Stage1();
void draw();
void next_stage(const Player& Pl);
};
-Stage1.cpp-
#include "DxLib.h"
#include "Stage1.h"
#include "Globals.h"
Stage1::Stage1()
{
s1_graph = LoadGraph("passer画像/stage1.floor.png");
}
void Stage1::draw()
{
DrawGraph(0, 0, s1_graph, FALSE);
}
void Stage1::next_stage(const Player& Pl)
{
if(Pl.pos_x() <= 640){
currentStage = st2;
}
}
#include "DxLib.h"
#include "MouseCursor.h"
#include "Globals.h"
bool InitDXLib()
{
ChangeWindowMode(TRUE);
SetMainWindowText("passer");
if( DxLib_Init() == -1 ){
return false;
}
SetMouseDispFlag( FALSE );
return true;
}
void CleanUpDXLib()
{
DxLib_End();
}
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow )
{
if (!InitDXLib()) {
return -1;
}
MouseCursor *mouseCursor = new MouseCursor();//クラスの初期化
titleScene = new TitleScene();
playScene = new PlayScene();
gameoverScene = new GameOverScene();
currentScene = titleScene;//現在の画面遷移状態
currentStage = st1;
SetDrawScreen( DX_SCREEN_BACK );
while (true) {
ClearDrawScreen();
mouseCursor->updateCursorInfo();
currentScene->draw();//現在のシーンのdraw関数を呼び出す
currentStage->draw();//現在のステージのdraw関数を呼び出す
currentScene->update(mouseCursor);//現在のcurrentSceneの中のdraw関数を呼び出す
currentStage->next_stage();//現在のnext_stage関数を呼び出す
if( CheckHitKey( KEY_INPUT_BACK ) ){
break;
}
if( ProcessMessage() == -1 ){
break;
}
ScreenFlip();
}
//ゲーム終了際、クラスのデリート
delete titleScene;
delete playScene;
delete gameoverScene;
delete mouseCursor;
delete currentStage;
CleanUpDXLib();
return 0;
}