void AutomatedScreenshotController::Update(const float dt) { switch (m_execState) { case ExecStateStreamingInitialSceneAndManifest: if (!m_eegeoWorld.IsStreaming(false)) { NextScene(); m_execState = ExecStateWaitingForSceneToStream; m_updateCyclesToWait = UpdateCyclesToWaitForSplashScreenToDisappear; } return; case ExecStateWaitingForSceneToStream: if (!m_eegeoWorld.IsStreaming(false)) { m_execState = ExecStateWaitForSceneToRender; } return; case ExecStateWaitForSceneToRender: if (m_updateCyclesToWait <= 0 && m_waitPredicate()) { m_screenshotService.screenshot("screenshot"); m_execState = ExecStatePrepareNextScene; } m_updateCyclesToWait--; return; case ExecStatePrepareNextScene: if (Done()) { m_completedScreenshotsCallbacks.ExecuteCallbacks(); m_execState = ExecStateDone; } else { NextScene(); m_updateCyclesToWait = UpdateCyclesPerScreenshot; m_execState = ExecStateWaitingForSceneToStream; } return; case ExecStateDone: default: return; } }
void ManagementScene::UpData(){ this->ChangeScene(); switch (this->NowScene()){ case DataScene::eScene::eTITLE: this->m_pScene = std::make_unique<SceneTitle>(); NextScene(DataScene::eScene::eSTART); break; case DataScene::eScene::eSTART: this->m_pScene = std::make_unique<SceneStart>(); NextScene(DataScene::eScene::eBATTLE); break; case DataScene::eScene::eBATTLE: this->m_pScene = std::make_unique<SceneBattle>(); NextScene(DataScene::eScene::eRESULT); break; case DataScene::eScene::eRESULT: this->m_pScene = nullptr; NextScene(DataScene::eScene::eSTART); break; case DataScene::eScene::eNULL: this->m_pScene = nullptr; NextScene(DataScene::eScene::eTITLE); break; } }
void CConversation::Update () { m_fCurrentDuration += m_pWindow->GetFrameTime (); // Update every sprite m_Background.Update (); // Update the TextArea m_pTextArea->Update (m_pWindow->GetFrameTime () ); // Check if the current scene has a maximum duration if (m_Scenes.at (m_CurScene).m_fDuration >= 0 && m_Scenes.at (m_CurScene).m_fDuration <= m_fCurrentDuration && m_Scenes.at (m_CurScene).m_Choices.empty () ) NextScene (); // Go to the Next scene }
//******************************************************************************************************* void CSceneManager::KeyPressed(int key) { switch (key) { case 'n': NextScene(); break; case 's': m_ShowScope = !m_ShowScope; break; case 'h': NScene::CFireFloaterScene::m_Hold = !NScene::CFireFloaterScene::m_Hold; break; default: break; } }
void SymphonyEngine::Run() { //Event handler SDL_Event e; //Enable text input SDL_StartTextInput(); float deltaTime; //TO-DO: Code regarding FPS check could be enabled/disabled by the user int numberOfFrames = 0; float frameStartTime, frameEndTime = 0.0f, frameTotalTime; float nextTimeLap = frameEndTime + 1.0f; std::stringstream ss; NextScene(); //While application is running while (gameLoopIsActive) { frameStartTime = gameTimer->GetMS(); deltaTime = gameTimer->GetDeltaTime(); //Handle events on queue while (SDL_PollEvent(&e) != 0) { //User requests quit if (e.type == SDL_QUIT) { gameLoopIsActive = false; } else if (e.type == SDL_KEYDOWN) { if (e.key.keysym.sym == SDLK_ESCAPE) { gameLoopIsActive = false; continue; } } else if (e.type == SDL_WINDOWEVENT) { switch (e.window.event) { case SDL_WINDOWEVENT_RESIZED: SDL_Log("Window %d resized to %dx%d", e.window.windowID, e.window.data1, e.window.data2); break; case SDL_WINDOWEVENT_SIZE_CHANGED: SDL_Log("Window %d size changed to %dx%d", e.window.windowID, e.window.data1, e.window.data2); break; Screen::SetResolution(e.window.data1, e.window.data2); //TO-DO: Update all cameras in the current scene /*if (camera) camera->AdaptToResize(e.window.data1, e.window.data2);*/ if (currentScene) currentScene->UpdateCameras(e.window.data1, e.window.data2); } } } keyboard->Update(); mouse->Update(deltaTime); //Game logic update Update(deltaTime); //Game rendering Render(); //Clear the states of inputs keyboard->Clear(); mouse->Clear(); //TO-DO: Code regarding FPS check could be enabled/disabled by the user //Frame-rendering performance check /*frameEndTime = gameTimer->GetMS(); frameTotalTime = frameEndTime - frameStartTime; ++numberOfFrames; if (nextTimeLap - frameEndTime <= 0.0f) { ss.clear(); ss.str("FPS: "); ss << "FPS: " << (1000.0 / double(frameTotalTime)) << " | ms/frame: " << frameTotalTime;; windowManager->SetWindowTitle(ss.str().c_str()); numberOfFrames = 0; nextTimeLap = frameEndTime + 100.0f; }*/ } //Disable text input SDL_StopTextInput(); //Free resources and close SDL Shutdown(); }