-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSceneMgr.cpp
49 lines (42 loc) · 1.27 KB
/
SceneMgr.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#include "../headers/SceneMgr.h"
SceneMgr::SceneMgr() : mNextScene(eScene_None) //次のシーン管理変数
{
mScene = (BaseScene*) new Menu(this);
}
//初期化
void SceneMgr::Initialize() {
mScene->Initialize();
}
//終了処理
void SceneMgr::Finalize() {
mScene->Finalize();
}
//更新
void SceneMgr::Update() {
if (mNextScene != eScene_None) { //次のシーンがセットされていたら
mScene->Finalize();//現在のシーンの終了処理を実行
delete mScene;
switch (mNextScene) { //シーンによって処理を分岐
case eScene_Menu: //次の画面がメニューなら
mScene = (BaseScene*) new Menu(this); //メニュー画面のインスタンスを生成する
break;//以下略
case eScene_Normal:
mScene = (BaseScene*) new OnePlayerGame(this);
break;
//case eScene_Tetlis2pi:
// mScene = (BaseScene*) new Game2pi(this);
// break;
}
mNextScene = eScene_None; //次のシーン情報をクリア
mScene->Initialize(); //シーンを初期化
}
mScene->Update(); //シーンの更新
}
//描画
void SceneMgr::Draw() {
mScene->Draw(); //シーンの描画
}
// 引数 nextScene にシーンを変更する
void SceneMgr::ChangeScene(eScene NextScene) {
mNextScene = NextScene; //次のシーンをセットする
}