//-----------------------------------------------------------------------------------
void TheGame::Update(float deltaSeconds)
{
    if (InputSystem::instance->WasKeyJustPressed('D'))
    {
        g_renderDebug = !g_renderDebug;
    }
    if(InputSystem::instance->WasKeyJustPressed('1'))
    {
        SetGameState(GameState::MAIN_MENU);
    }
    else if (InputSystem::instance->WasKeyJustPressed('2'))
    {
        SetGameState(GameState::MAP_SELECTION);
    }
    else if (InputSystem::instance->WasKeyJustPressed('3'))
    {
        SetGameState(GameState::GENERATION);
    }
    else if (InputSystem::instance->WasKeyJustPressed('4'))
    {
        SetGameState(GameState::PLAYING);
    }
    else if (InputSystem::instance->WasKeyJustPressed('5'))
    {
        SetGameState(GameState::PAUSED);
    }

    switch(GetGameState())
    {
    case GameState::MAIN_MENU:
        UpdateMainMenu(deltaSeconds);
        break;
    case GameState::MAP_SELECTION:
        EnvironmentBlueprint::LoadEnvironmentBlueprints();
        UpdateMapSelection(deltaSeconds);
        break;
    case GameState::GENERATION:
        UpdateGeneration(deltaSeconds);
        break;
    case GameState::PLAYING:
        if (m_player == nullptr)
        {
            m_player = new Player();
            SpawnInGame(m_player);
            m_currentMap->UpdateFOVFrom(m_player->m_position, m_player->m_viewDistance);

            for (int i = 0; i < NPCFactory::s_NPCFactories.size(); ++i)
            {
                NPC* enemyPointer = NPCFactory::GetNPCAt(i); 
                SpawnInGame(enemyPointer);
            }
        }
        UpdatePlaying(deltaSeconds);
        break;
    case GameState::PAUSED:
        UpdatePaused(deltaSeconds);
        break;
    }
    MessageLog::instance->Update(deltaSeconds);
}
Exemplo n.º 2
0
void Game::Update( const GameInput& gameInput, float deltaTimeSeconds )
{
	m_deltaTimeSeconds = deltaTimeSeconds;

	switch( m_gameState )
	{
	case kGameState_TitleScreen:
		if( gameInput.bStart )
		{
			InitPlaying();
			m_gameState = kGameState_Playing;
		}
		break;
	case kGameState_Playing:
		UpdatePlaying( gameInput );
		break;
	case kGameState_GameOver:
		if( gameInput.bStart )
		{
			m_gameState = kGameState_TitleScreen;
		}
		break;
	}
}