//the game loop, calls all of the supplemental //methods of the application to continuously //update and maintain the functionality of the //game void Application::gameLoop() { while(gameRunning) { handleEnvironment(); updateMonsters(); handleEvents(); updatePlayer(); handleArrows(); handlePhysics(); delta.start(); checkBoundaries(); updateFPS(); updatePoints(); drawSurface(); if(finished) { showFinal(); } } }
void updateObject(Game* game){ int i; for(i=0; i<game->objectNumber; i++){ switch (game->map->objects[i].type){ case FLY : if(game->map->objects[i].initialized == 0) initializeMonster(&(game->map->objects[i]),game->map->objects[i].x,game->map->objects[i].y); if(game->map->objects[i].initialized == 1) updateMonsters(game, &(game->map->objects[i])); break; case COIN : if((collideObject(game->player,&(game->map->objects[i])) == 1) && (game->map->objects[i].initialized == 0)) { getItem(game); game->map->objects[i].initialized =1 ; } break; case DOOR : if((collideObject(game->player,&(game->map->objects[i])) == 1) && (game->map->objects[i].initialized == 0)){ game->level++; endLevel(game); } break; case BLUE_BLOCK : if((collideObject(game->player,&(game->map->objects[i])) == 1) && (game->map->objects[i].initialized == 0)){ isSolid(game->player,&(game->map->objects[i])); } break; case GREEN_BLOCK : if((collideObject(game->player,&(game->map->objects[i])) == 1) && (game->map->objects[i].initialized == 0)){ isSolid(game->player,&(game->map->objects[i])); } break; case YELLOW_BLOCK : if((collideObject(game->player,&(game->map->objects[i])) == 1) && (game->map->objects[i].initialized == 0)){ isSolid(game->player,&(game->map->objects[i])); } break; case RED_BLOCK : if((collideObject(game->player,&(game->map->objects[i])) == 1) && (game->map->objects[i].initialized == 1)){ isSolid(game->player,&(game->map->objects[i])); } break; case PICK : if((collidePick(game->player,&(game->map->objects[i])) == 1) && (game->map->objects[i].initialized == 0)){ if(game->life > 0) { game->life--; game->player->timerMort = 1; if(game->life<1) playerGameover(game); } } break; case ELEVATOR_BLOCK : if((collideObject(game->player,&(game->map->objects[i])) == 1) && (game->map->objects[i].initialized == 1)){ isSolid(game->player,&(game->map->objects[i])); } break; case ELEVATOR_SWITCH : if((collideObject(game->player,&(game->map->objects[i])) == 1) && (game->map->objects[i].initialized == 0) && (game->input->use == 1)){ activateSwitch(ELEVATOR_BLOCK,game); game->map->objects[i].initialized = 1; game->input->use =0; playSoundFx(SWITCHSOUND,game); break; } if((collideObject(game->player,&(game->map->objects[i])) == 1) && (game->map->objects[i].initialized == 1) && (game->input->use == 1)){ desactivateSwitch(ELEVATOR_BLOCK,game); game->map->objects[i].initialized = 0; game->input->use = 0; playSoundFx(SWITCHSOUND,game); break; } break; case BLUE_SWITCH : if((collideObject(game->player,&(game->map->objects[i])) == 1) && (game->map->objects[i].initialized == 0) && (game->input->use == 1)){ activateSwitch(BLUE_BLOCK,game); game->map->objects[i].initialized = 1; game->input->use =0; playSoundFx(SWITCHSOUND,game); break; } if((collideObject(game->player,&(game->map->objects[i])) == 1) && (game->map->objects[i].initialized == 1) && (game->input->use == 1)){ desactivateSwitch(BLUE_BLOCK,game); game->map->objects[i].initialized = 0; game->input->use = 0; playSoundFx(SWITCHSOUND,game); break; } break; case GREEN_SWITCH : if((collideObject(game->player,&(game->map->objects[i])) == 1) && (game->map->objects[i].initialized == 0) && (game->input->use == 1)){ activateSwitch(GREEN_BLOCK,game); game->map->objects[i].initialized = 1; game->input->use =0; playSoundFx(SWITCHSOUND,game); break; } if((collideObject(game->player,&(game->map->objects[i])) == 1) && (game->map->objects[i].initialized == 1) && (game->input->use == 1)){ desactivateSwitch(GREEN_BLOCK,game); game->map->objects[i].initialized = 0; game->input->use = 0; playSoundFx(SWITCHSOUND,game); break; } break; case YELLOW_SWITCH : if((collideObject(game->player,&(game->map->objects[i])) == 1) && (game->map->objects[i].initialized == 0) && (game->input->use == 1)){ activateSwitch(YELLOW_BLOCK,game); game->map->objects[i].initialized = 1; game->input->use =0; playSoundFx(SWITCHSOUND,game); break; } if((collideObject(game->player,&(game->map->objects[i])) == 1) && (game->map->objects[i].initialized == 1) && (game->input->use == 1)){ desactivateSwitch(YELLOW_BLOCK,game); game->map->objects[i].initialized = 0; game->input->use = 0; playSoundFx(SWITCHSOUND,game); break; } break; case RED_SWITCH : if((collideObject(game->player,&(game->map->objects[i])) == 1) && (game->map->objects[i].initialized == 0) && (game->input->use == 1)){ activateSwitch(RED_BLOCK,game); game->map->objects[i].initialized = 1; game->input->use =0; playSoundFx(SWITCHSOUND,game); break; } if((collideObject(game->player,&(game->map->objects[i])) == 1) && (game->map->objects[i].initialized == 1) && (game->input->use == 1)){ desactivateSwitch(RED_BLOCK,game); game->map->objects[i].initialized = 0; game->input->use = 0; playSoundFx(SWITCHSOUND,game); break; } break; default : break; } } }