「GameApp.cpp」の編集履歴(バックアップ)一覧はこちら
「GameApp.cpp」(2008/11/26 (水) 07:09:31) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
//C++
#include <GameApp.h>
//コンストラクタ
GameApp::GameApp():
{
//初期化処理
//DXライブラリFacade初期化
//DXL::instance().init();
//inputシングルトンクラス初期化
//Input::instance().init();
//初期シーン設定
changeScene(OPENING_SCENE);
}
//デストラクタ
GameApp::~GameApp();
{
//解放処理
//Input::instance().release();
//DXL::instance().release();
}
void GameApp::mainLoop(){
SceneType next;
//ここがぐるぐる回って全てが動く
while(true){
//時間を取得、フレーム調整のため
//Timer::instance().getTime();
//現在シーンを1F動かす
next = m_pScene->update(m_pSceneData);
//演算時間を取得して16msを超えていたら描画しない
//if(!Timer::instance().isOverTime()){
m_pScene->draw();
//}
//帰ってきたシーンが現在のシーンじゃなかったらシーン遷移する
if(next != m_nowScene){
changeScene(next);
}
}
}
void GameApp::changeScene(SceneType scene){
//現在のシーンをdeleteしておく
delete m_pScene;
m_nowScene = scene;
//sceneの種類によってnewするクラスを選ぶ
switch(scene){
case OPENING_SCENE: break;
case MENU_SCENE: break;
case CHARASELE_SCENE: break;
}
}
//C++
#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;
}
}