GameApp.cpp

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

表示オプション

横に並べて表示:
変化行の前後のみ表示:
ツールボックス

下から選んでください:

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