#include "GameApp.h"
////////////////////////////////////////////////////////////////////
//コンストラクタ
////////////////////////////////////////////////////////////////////
GameApp::GameApp()
{
//初期化処理
//DXライブラリFacade初期化
DXL().init();
//inputシングルトンクラス初期化
Input::instance().init();
//シーンデータクラス初期化
m_pSceneData = new SceneData();
//初期シーン設定
changeScene(TEST_SCENE);
}
////////////////////////////////////////////////////////////////////
//デストラクタ
////////////////////////////////////////////////////////////////////
GameApp::~GameApp()
{
//解放処理
Input::instance().release();
DXL().release();
//シーンデータ解放
delete m_pSceneData;
//シーン解放
delete m_pScene;
}
////////////////////////////////////////////////////////////////////
//メインループ
////////////////////////////////////////////////////////////////////
void GameApp::mainLoop(){
//ここがぐるぐる回って全てが動く
while(true){
if(m_pScene == NULL){
DXL().print("指定シーンが不正です");
return;
}
//現在シーンを1F動かす
SceneType next = m_pScene->update(m_pSceneData);
//次のシーンが終了シーンならループを抜ける
if(next == END_SCENE)
return;
//1F単位時間を超えていたら描画しない
if(!m_Timer.isElapsedFrame()){
m_pScene->draw();
}
//帰ってきたシーンが現在のシーンじゃなかったらシーン遷移する
if(next != m_nowScene){
changeScene(next); //シーン変更
}
//1F単位時間までSleepする
m_Timer.wait();
//FPSData data = m_Timer.getFPS;
}
}
////////////////////////////////////////////////////////////////////
// シーン変更メソッド
////////////////////////////////////////////////////////////////////
void GameApp::changeScene(SceneType scene){
//現在のシーンをdeleteしておく
delete m_pScene;
m_nowScene = scene;
//sceneの種類によってnewするクラスを選ぶ
switch(scene){
case OPENING_SCENE:
m_pScene = new OpeningScene();
break;
case MENU_SCENE: break;
case CHARASELE_SCENE: break;
case TEST_SCENE:
m_pScene = new TestScene();
break;
}
}
最終更新:2008年11月26日 07:09