/*notice the default arguments for main. SDL expects main to look like that, so don't change it*/ int main(int argc, char *argv[]) { SDL_Surface *temp = NULL; int done; int tx = 0,ty = 0; int i; const Uint8 *keys; char imagepath[512]; SDL_Rect srcRect={0,0,SCREEN_WIDTH,SCREEN_HEIGHT}; SDL_Event e; last_time = current_time = SDL_GetTicks(); Init_All(); slog("Finished Init All()"); done = 0; do { //render or draw functions go here //draw functions should go in order from background first to player draw calls last ResetBuffer(); SDL_RenderClear(__gt_graphics_renderer);//clear screen tile_render(); player_draw(); DrawMouse2(); /*monster_spawn(Monster::grue); monster_spawn(Monster::spider01); monster_spawn(Monster::mino); monster_spawn(Monster::orc); support_spawn(Support::sara); support_spawn(Support::healer); support_spawn(Support::archer); */ entity_update_all(); entity_think_all(); entity_check_collision_all(); particle_em_draw_all(); // struct_update_all(); G_MONSTER_SPAWN_TIMER -= 1; while(SDL_PollEvent(&e) != 0) player_move (&e); NextFrame(); //end SDL_PumpEvents(); keys = SDL_GetKeyboardState(NULL); //taken from lazyfoo //handles generally keyboard inputs while( SDL_PollEvent( &e) != 0){ if(e.type == SDL_QUIT) done = 1; else player_move(&e); } if(keys[SDL_SCANCODE_ESCAPE]) { done = 1; } SDL_RenderPresent(__gt_graphics_renderer); last_time = current_time; current_time = SDL_GetTicks(); delta = current_time - last_time; }while(!done); exit(0); /*technically this will end the program, but the compiler likes all functions that can return a value TO return a value*/ return 0; }
int levelTwo() { moving = 0; SDL_RenderClear(gt_graphics_get_active_renderer()); ResetBuffer(); backOffset = ((int)camera.x+3200)%3200; offset = ((int)camera.x+1600)%1600; drawSprite(moonBack,0,vec2d(0,0),vec2d(1,1),0,gt_graphics_get_active_renderer()); drawSprite(levelTwoBackTrees,0,vec2d(-backOffset,0),vec2d(1,1),0,gt_graphics_get_active_renderer()); drawSprite(levelTwoFrontTrees,0,vec2d(-offset,0),vec2d(1,1),0,gt_graphics_get_active_renderer()); drawSprite(levelTwoFloor,0,vec2d(-offset,0),vec2d(1,1),0,gt_graphics_get_active_renderer()); drawSprite(levelTwoFrontTrees,0,vec2d(-offset+1600,0),vec2d(1,1),0,gt_graphics_get_active_renderer()); drawSprite(levelTwoBackTrees,0,vec2d(-backOffset+1600,0),vec2d(1,1),0,gt_graphics_get_active_renderer()); drawSprite(levelTwoFloor,0,vec2d(-offset+1600,0),vec2d(1,1),0,gt_graphics_get_active_renderer()); entity_think_all(); entity_touch_all(); entity_update_all(); entity_draw_all(); if(player->position.x >= 300) { camera.x = player->position.x - 300; } if(player->position.x < 300) { camera.x = 0; } if(xDistance == 12000.00) { done = 1; } healthBar(); NextFrame(); SDL_PumpEvents(); diff = (gt_graphics_now - gt_graphics_then); if(playerData.shotTimer>0) { playerData.shotTimer -= diff; } keys = SDL_GetKeyboardState(NULL); if(keys[SDL_SCANCODE_ESCAPE]) { done = 1; } else if(keys[SDL_SCANCODE_W]) { moving = 1; moveCharacter(DIR_UP,player); yDistance = player->position.y; } else if(keys[SDL_SCANCODE_A]) { moving = 1; moveCharacter(DIR_LEFT,player); xDistance = player->position.x; } else if(keys[SDL_SCANCODE_D]) { moving = 1; moveCharacter(DIR_RIGHT,player); xDistance = player->position.x; } else if(keys[SDL_SCANCODE_S]) { moving = 1; moveCharacter(DIR_DOWN,player); yDistance = player->position.y; } else if(keys[SDL_SCANCODE_1]) { fire_Pistol(); } else if(keys[SDL_SCANCODE_2]) { fire_Shotgun(); } else if(keys[SDL_SCANCODE_3]) { fire_Machinegun(); } else if(keys[SDL_SCANCODE_4]) { fire_Heavy_Machinegun(); } else if(keys[SDL_SCANCODE_P]) { saveState(); } else if(keys[SDL_SCANCODE_O]) { loadState(); } if(moving == 0) { resetAnimation(player, 0); } return 0; }