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;
            }
        }
コード例 #2
0
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;


	}
}
コード例 #3
0
ファイル: CConversation.cpp プロジェクト: martu/simple-VN
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
}
コード例 #4
0
//*******************************************************************************************************
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;
	}
}
コード例 #5
0
    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();
    }