void render_game(GameState * state) { /* Variables */ Color color = {255, 0, 255, 255}; Color black = {0, 0, 0, 255}; Color white = {255, 255, 255, 255}; char buffer [20]; int i,n; /* Set redraw off */ state->redraw = 0; /* Render world */ render_world(&state->world); /* Render pathfinding, if enabled */ if (SHOW_PATHFINDING) render_paths(state); /* Render towers */ for (i = 0; i < state->towers_length; i++) { render_entity(state->towers[i]); } /* Render enemies if they are alive */ for (i = 0; i < state->enemies_length; i++) { if (state->enemies[i].enemy.alive) render_entity(&state->enemies[i]); } /* Render spellscreen */ render_spellscreen(&state->spells); /* Render projectiles */ for (i = 0; i < state->towers_length; i++) { render_projectiles(state->towers[i]); } /* render selection */ render_mouse_actions(state); /* Render ui on top */ render_ui(state); /* Fps rendering */ n = sprintf(buffer, "%#.1f FPS", get_current_fps()); draw_text(buffer, FONT_LARGE, color, SCREEN_WIDTH-20 -100, 6, ALIGN_RIGHT); /* Game over? */ render_game_over(state); /* Render to screen */ flip_display(); clear_to_color(color); }
void render_viewport( Viewport* viewport, GameState* gamestate ) { // Reload the identity matrix glMatrixMode(GL_MODELVIEW); glLoadIdentity(); // Apply the viewport to the current OpenGL context (and its camera's // perspective) Viewport_apply(viewport); // Render the landscape render_landscape( gamestate->landscape, gamestate->landscape->worldWidth ); // Render the players render_player( gamestate->player1, gamestate->landscape->gridDivisionWidth ); render_player( gamestate->player2, gamestate->landscape->gridDivisionWidth ); // Render the objects render_projectiles( gamestate->player1_projectile, gamestate->player2_projectile ); render_edible( gamestate->edible ); }