GameApp.cpp

#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;
	}
}
 

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2008年11月26日 07:09
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。