void gamenMgr_Update(){
	switch(gamen){
		case -1:
			menu_Update();
			break;
		case 0:
			game_Update();
			break;
		case 1:
			config_Update();
			break;
		case 2:
			break;
	}
}
Beispiel #2
0
void Update (GameState gameState)
{
/*Update - Updates the games state via gameObjects.*/

	key key;

  if(gameState->gamePhase == game && gameState->gameStartTime == -1){
      gameState->gameStartTime = SDL_GetTicks();
  }

  switch (gameState->gamePhase){
    case titleScreen:
      OBJECTS->titleMenu->active = true;
      menu_Update(OBJECTS->titleMenu, OBJECTS->code);
      if(OBJECTS->titleMenu->active == false){
        gameState->gamePhase = game;
      }
      DrawMenu(OBJECTS->gameDisplay, OBJECTS->titleMenu, OBJECTS->code, OBJECTS->gameScore);

      break;

    case game:

      key = Get_Key(&OBJECTS->gameDisplay->playerFacing);

      if(key == PAUSE){
        gameState->gamePhase = paused;
      }

      player_Update(OBJECTS->player, key, OBJECTS->entities->startPlatform);
      entity_Update(OBJECTS->entities, gameState->gameStartTime, SDL_GetTicks());
      code_Update(OBJECTS->code, SDL_GetTicks());
      display_ScoreUpdate(OBJECTS->gameScore, OBJECTS->player, OBJECTS->entities, OBJECTS->gameSounds, \
                            gameState->gameStartTime, OBJECTS->pauseMenu->menuTimeElapsed);
      display_Update(OBJECTS->gameDisplay, player_Get_Player_X(OBJECTS->player), \
                        player_Get_Player_Y(OBJECTS->player), player_Get_Player_Lives(OBJECTS->player), \
                        OBJECTS->entities, OBJECTS->gameScore);

      if(player_Get_Player_Lives(OBJECTS->player) < 0){
        Mix_PlayChannel(-1, OBJECTS->gameSounds->death, 0);
        gameState->gamePhase = gameOver;
      }
      break;

    case paused:
        OBJECTS->pauseMenu->active = true;
        menu_Update(OBJECTS->pauseMenu, OBJECTS->code);
        if(OBJECTS->pauseMenu->active == false){
          gameState->gamePhase = game;
        }
        DrawMenu(OBJECTS->gameDisplay, OBJECTS->pauseMenu, OBJECTS->code, OBJECTS->gameScore);
        break;

    case gameOver:
        display_RecordScore(OBJECTS->gameScore->scorePoints);
        SDL_Delay(3000);
        gameState->gamePhase = titleScreen;
        player_GameOverReset(OBJECTS->player);
        enitity_GameOverReset(OBJECTS->entities);
        free(OBJECTS->gameScore);
        OBJECTS->gameScore = display_ScoreInitialise(OBJECTS->gameDisplay);
        gameState->gameStartTime = -1;
				display_ResetBaseItems(OBJECTS->gameDisplay); 
        break;
  }
}