Beispiel #1
0
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);
}
Beispiel #2
0
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 );
}