void GUI::OnRender() { if(current_screen == MENU_SCREEN) { render_menu(menu); } else if(current_screen == MAP_SCREEN) { std::vector<std::vector<MapTile> > map_canvas = world_map_gui.get_canvas(); for(size_t i = 0; i < map_canvas.size(); i++) { for(size_t j = 0; j < map_canvas[i].size(); j++) { drawChr(j, i, map_canvas[i][j].char_count, ascii, screen, map_canvas[i][j].color); } } drawStr(0, GAME_HEIGHT - 2, std::string("Use the arrow keys to move the cursor.").c_str(), ascii, screen, WHITE); drawStr(0, GAME_HEIGHT - 1, std::string("Press ENTER to spawn on the selected map tile.").c_str(), ascii, screen, WHITE); } else if (current_screen == GAME_SCREEN) { render_canvas(); render_target(); render_characters(); render_main_char(); render_animations(); clear_area(IntPoint(0, UI_START), IntPoint(UI_HEIGHT, UI_WIDTH)); render_interface(); render_message(); } else if(current_screen == DIRECTION_SCREEN) { drawStr(0, 0, std::string("Pick a direction to perform the action.").c_str(), ascii, screen, WHITE); } else if (current_screen == DEATH_SCREEN) { clear_screen(); drawStr(GAME_WIDTH/2 - 12, GAME_HEIGHT/2, std::string("You suck, uninstall bro.").c_str(), ascii, screen, WHITE); } else if (current_screen == DEBUG_CONSOLE) { render_canvas(); render_target(); render_characters(); render_main_char(); render_debug(); } if(game.is_paused()) { drawStr(GAME_WIDTH-20, 0, std::string("Paused").c_str(), ascii, screen, WHITE); } SDL_Flip(screen); }
void Render_Gioco(void){ float tmp; pointer_pos=cursor_position(); glutSetCursor(GLUT_CURSOR_NONE); glDisable(GL_FOG); drawSkybox(); drawGun(); drawBullet(); drawScore(); glPushMatrix(); gluLookAt(0.f,0.f,3.f,0.f,0.f,-5.f,0.f,1.f,0.f); tmp = 0.0536414; glScalef(tmp, tmp, tmp); glTranslated(-xpos,0.0f,0.0f); //SPOSTAMENTO DELLA CAMERA: float xx=9,yy=0,zz=42; glTranslatef(xx,yy,zz); glRotatef(main_camera.getLocRot().y_rot,0.0f,1.0f,0.0f); glTranslatef(-xx,-yy,-zz); //translo la camera (in realta' translo tutto il resto) glTranslatef(main_camera.getLocRot().x, main_camera.getLocRot().y, main_camera.getLocRot().z); //Fog---------------------- glFogi(GL_FOG_MODE, GL_LINEAR); // Fog Mode GLfloat fogColor[4]= {0.6f, 0.5f, 0.3f, 1.0f}; glFogfv(GL_FOG_COLOR, fogColor); // Set Fog Color glFogf(GL_FOG_DENSITY, 0.45f); // How Dense Will The Fog Be glHint(GL_FOG_HINT, GL_DONT_CARE); // Fog Hint Value glFogf(GL_FOG_START, 3.5f); // Fog Start Depth glFogf(GL_FOG_END, 6.0f); // Fog End Depth glEnable(GL_FOG); // Enables GL_FOG //------------------------- if(first == TRUE){ scene_list_case=glGenLists(4); scene_list_target=glGenLists(10); lista_case(scene_list_case,level1_scene.scene,level2_scene.scene,level3_scene.scene,terreno_scene.scene); lista_target(scene_list_target,target_scene.scene); pos=scegli_pos(livello,livelli); first = FALSE; } if(m[pos].stato==2){ m[pos]=reset_motion(m[pos]); pos=scegli_pos(livello,livelli); } ch=render_target(livello,scene_list_target,pos,livelli,m[pos],ch,t.v); render_case(livello,scene_list_case); if(!pause)t=count_time(t); m[pos]=scegli_mov(m[pos],livelli,pos,t.tempoi, t.v, ch_index,ch); glPopMatrix(); drawPointer(pointer_pos); if(pause) DrawMenu(0,0,menuArray[5],true); }