void traverse_tree(NODE *node, VEC2F p, VEC2F v, VEC2F vertex[], VERTEX map_vertex[]) { float k; int j = 1; if(key[KEY_SPACE]) j = -1; if(node != NULL) { VEC2F vert = vec2f(map_vertex[node->a * 2].local.x, map_vertex[node->a * 2].local.z); k = VEC2F_DOT_PRODUCT(node->n, VEC2F_DIFF(vert, p)); if(k * j < 0.0) { if(node->right != NULL) traverse_tree(node->right, p, v, vertex, map_vertex); //if(in_view(p, v, vertex[node->a], vertex[node->b])) draw_wall(map_vertex, node->a, node->b); if(node->left != NULL) traverse_tree(node->left, p, v, vertex, map_vertex); } else { if(node->left != NULL) traverse_tree(node->left, p, v, vertex, map_vertex); //if(in_view(p, v, vertex[node->a], vertex[node->b])) draw_wall(map_vertex, node->a, node->b); if(node->right != NULL) traverse_tree(node->right, p, v, vertex, map_vertex); } } }
void render_col(t_event *e, t_raycast *rc, int x, float wall_dist) { int line_height; int draw[2]; float y; line_height = abs((int)(e->height / wall_dist)); draw[0] = -line_height / 2 + e->height / 2; if (draw[0] < 0) draw[0] = 0; draw[1] = line_height / 2 + e->height / 2; if (draw[1] >= e->height) draw[1] = e->height; calc_wall(e, rc); y = draw[0] - 1; while (++y <= draw[1]) { draw_wall(e, rc, get_vec2(x, y), line_height); } calc_ground(rc); y = draw[1] - 1; while (++y < e->height) { rc->cdist = e->height / (2.0 * y - e->height); rc->coef = rc->cdist / wall_dist; draw_ground(e, rc, x, y); } }
void draw_main() { if(GetNowCount() - Csystem::start_time > 90000) return; SetUseZBuffer3D( TRUE ); SetWriteZBuffer3D( TRUE ); ChangeLightTypePoint( VGet(0,500,0), 1000, 2, 0, 0 ) ; draw_wall(VGet(-500,1000,-500),VGet(-500,1000,500),VGet(500,1000,500),VGet(500,1000,-500), VGet(-500,0,-500),VGet(-500,0,500),VGet(500,0,500),VGet(500,0,-500)); Pplayer->Preticle->draw(); if(Pplayer->target_type == Cplayer::FREE) { Pplayer->draw(); Pplayer->Pright_arm->right_draw(); Pplayer->Pleft_arm->left_draw(); } int player_hp = 254 * Pplayer->hit_point/1500; DrawRectGraph(80,14,0,0,player_hp,25,player_hp_g,TRUE,FALSE); switch (Csystem::game_mode) { case Csystem::SOLO: Pboss->draw(); DrawRectGraph(1195-(254 * Pboss->hit_point/4193),14,254 -(254 * Pboss->hit_point/4193),0,254,25,enemy_hp_g,TRUE,FALSE); break; case Csystem::ONLINE: Penemy->draw(); DrawRectGraph(1195-(254 * Penemy->hit_point/1500),14,254 -(254 * Penemy->hit_point/1500),0,254,25,enemy_hp_g,TRUE,FALSE); break; } for(int i = 0;i < 4;i++) { for(int k = 0;k < AMMO_MAX;k++) { Pplayer->Pleft_shot[i][k]->draw(); Pplayer->Pright_shot[i][k]->draw(); } } for(int k = 0;k < AMMO_MAX;k++) { Pboss->Pshot[k]->draw(); } DrawGraph(0,0,hp_bar_g,TRUE); Pcamera->draw(); #ifdef _DEBUG DrawFormatString(800,0,0x000fff,"%d",GetJoypadInputState( DX_INPUT_PAD1 )); DrawFormatString(0,20,0x000000,"X座標:%6f",Pplayer->pos.x); DrawFormatString(0,40,0x000000,"Y座標:%6f",Pplayer->pos.y); DrawFormatString(0,60,0x000000,"Z座標%6f",Pplayer->pos.z); DrawFormatString(460,0,0x000000,"敵撃破数%3d",Csystem::destroy_enemy); DrawFormatString(460,20,0x000000,"経過時間%2d秒",(GetNowCount() - Csystem::start_time)/1000); #endif }
void draw_walls(SDL_Surface *screen, Wall *w) { int i; for (i = 0; i < WALL_MAX; i++) { if(w[i].ex) { draw_wall(screen, &w[i]); } } }
void compoe_teclado(GLfloat lado, GLfloat atras){ glColor3f(1,1,1); glScalef (2.6, 0.2, 1.2); draw_wall(lado, -4, 4.0-atras, -18.7-lado, -4.0, 4.0-atras, -18.7-lado, -4.0, -18.7-lado, 4.0-atras , -4.0, -18.7-lado, 4); }
t_bunny_response mainloop(void *data) { t_win *win; t_bunny_position origin; origin.x = 0; origin.y = 0; win = data; move_me(win); draw_wall(win); bunny_blit(&win->win->buffer, &win->array->clipable, &origin); bunny_display(win->win); return (GO_ON); }
void choose_draw(t_env *e, int start, int end) { if (e->text == 0) draw_tlwall(e, start, end); else { if (e->xpm == 10 && e->open == 1) open_door(e, start, end); else if (e->xpm >= 11 && e->xpm < 15) draw_spwall(e, start, end, (e->xpm - 4)); else if (e->xpm >= 15) draw_sp_multiwall(e, start, end, (e->xpm - 4)); else draw_wall(e, start, end); } }
int main() { int state=0; init_scr(); init_gamewin(); init_wall(); begain_game(); draw_wall(); draw_bird(); char c=getch(); while((state=refresh_game())>0) ; if(state==-2) game_over(); endwin(); return 0; }
int launch_the_game(t_opengl *opengl, t_camera *camera) { int i = 0; int continuer = 1; t_coord player = {0, 0, 0, 0, UP}; static t_ptr_key ptr[9] = {{SDLK_DOWN, &modif_cam_z}, {SDLK_UP, &modif_cam_z}, {SDLK_LEFT, &modif_cam_x}, {SDLK_RIGHT, &modif_cam_x}, {280, &modif_cam_y}, {281, &modif_cam_y}, {Q, &move}, {D, &move}, {0, NULL}}; while (continuer == 1) { SDL_PollEvent(&opengl->event); SDL_Delay(10); if (opengl->event.type == SDL_QUIT) exit(SUCCESS); if (opengl->event.type == SDL_KEYDOWN) { i = 0; while (i < 11) { if (opengl->event.key.keysym.sym == ptr[i].keycode) { if ((i % 2) == 0) ptr[i].ptr_keycode(camera, &player, 0); else if ((i % 2) == 1) ptr[i].ptr_keycode(camera, &player, 1); } i = i + 1; } } glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); gluLookAt(camera->x, camera->y, camera->z, camera->eye_x, camera->eye_y, camera->eye_z, 0, 0, 1); draw_platform(); draw_wall(&player); SDL_GL_SwapBuffers(); glFlush(); } return (SUCCESS); }
void draw_vertical_line(t_env *e) { if (e->wall.end < 0 || e->wall.start >= SCREEN_H || e->x < 0 || e->x >= SCREEN_W) return ; if (e->wall.start < 0) e->wall.start = 0; if (e->wall.end >= SCREEN_W) e->wall.end = SCREEN_H - 1; if (e->textured_wall) { draw_wall_textured(e); draw_floor_ceil_textured(e); } else { draw_skydome(e); draw_wall(e); draw_below_wall(e); } }
int start(void) { struct wrect_driver_info wrect_driver; struct wrect_driver_info wrect_driver2; struct WRECT rect; struct WRECT rect2; int win_x,win_y,win_w,win_h; wrect_init(&wrect_driver2,&rect2); draw_wall(&wrect_driver2,&rect2); win_x=5; win_y=5; win_w=200; win_h=150; wrect_create_pixmap(&wrect_driver,&rect,win_x,win_y,win_w,win_h); wrect_adjust_pixmap(&wrect_driver,&wrect_driver2); wrect_set_color(&wrect_driver,wrect_driver.colorcode_white); wrect_draw_boxfill(&wrect_driver,&rect,0,0,rect.x2,rect.y2); draw_window(&wrect_driver,&rect,0,0,win_w,win_h,"title"); // draw_window(&rect,40,100,300,200,"Hello World"); // wrect_set_color(0); // wrect_draw_text(&rect, 500,0,"hit key"); wrect_set_color(&wrect_driver2, wrect_driver2.colorcode_white); wrect_set_bgcolor(&wrect_driver2, wrect_driver2.colorcode_black); wrect_draw_text(&wrect_driver2, &rect2, 0,0,"hit key"); // memcpy(wrect_driver2.videobuff,wrect_driver.videobuff,vbsize); wrect_draw_pixmap(&wrect_driver2, &rect2, win_x,win_y,win_w,win_h, wrect_driver.videobuff); keyboard_getcode(); vga_set_videomode(&wrect_driver, VGA_MODE_TEXT80x25,1); return 0; }
void draw_game_elements() { draw_ball(ball_x,ball_y, green); for (int i = 0; i < NUM_WALLS; i++) draw_wall(wall_y[i],wall_gap_x[i], wall_color); }
void compoe_sala(void){ GLUquadricObj *quadric; /* inicia a composicao da sala */ sala = glGenLists(1); glNewList(sala, GL_COMPILE); quadric = gluNewQuadric(); //janela sobre a porta glPushMatrix(); glColor3f(1,1,1); //tras/frente - cima/baixo - direita/esquerda glTranslatef (4.3, 7.5, 15.5); //espessura, altura, largura glScalef (0.1, 1.0, 1.5); glutWireCube (4.0); glPopMatrix(); //janela do lado da janela sobre a porta glPushMatrix(); //tras/frente - cima/baixo - direita/esquerda glTranslatef (4.3, 7.5, 11.2); //espessura, altura, largura glScalef (0.1, 1.0, 0.5); glutWireCube (4.0); glPopMatrix(); //janela lateral do lado da porta glPushMatrix(); //tras/frente - cima/baixo - direita/esquerda glTranslatef (4.3, -0.2, 11.2); //espessura, altura, largura glScalef (0.1, 2.68, 0.5); glutWireCube (4.0); glPopMatrix(); //janela lateral em baixo da janela lateral do lado da porta glPushMatrix(); //tras/frente - cima/baixo - direita/esquerda glTranslatef (4.3, -7.8, 11.2); //espessura, altura, largura glScalef (0.1, 1.0, 0.5); glutWireCube (4.0); glPopMatrix(); //tela do projetor //glPushMatrix(); //tras/frente - cima/baixo - direita/esquerda //glTranslatef (-16, -1.5, 18.5); //largura, altura, espessura //glScalef (3, 2.8, 0.05); //glutWireCube (5.0); //glPopMatrix(); //quadro glPushMatrix(); glColor3f(0.75,0.75,0.75); //tras/frente - cima/baixo - direita/esquerda glTranslatef (-15.7, 1., 18.5); //largura, altura, espessura glScalef (4, 1.5, 0.05); glutSolidCube (5.0); glPopMatrix(); //teto glPushMatrix(); //tras/frente - cima/baixo - direita/esquerda glTranslatef (-14.85, 10.0, -6.0); //largura, altura, espessura glScalef (10.05, 0.1, 10); glutWireCube (5.0); glPopMatrix(); // PISO COM TEXTURA glColor3f(1,1,1); draw_wall(20, -9.5, 20, -35, -9.5, 20, -35, -9.5, -40, 20 , -9.5, -40, 1); glColor3f(0,0,1.0); compoe_grade(); glColor3f(1.0,1.0,1.0); glEnable(GL_TEXTURE_GEN_S); glEnable(GL_TEXTURE_GEN_T); glBindTexture(GL_TEXTURE_2D, texture_id[0]); compoe_parede_exterior(); compoe_parede_entrada(); compoe_parede_quadro_ar(); compoe_janelas_sol(); compoe_janelas_entrada(); glDisable(GL_TEXTURE_GEN_S); glDisable(GL_TEXTURE_GEN_T); glBindTexture(GL_TEXTURE_2D, 0); compoe_biros_esquerdo(); compoe_biros_direito(); glColor3f(0,0,0); compoe_computador_esq(); compoe_computador_dir(); glColor3f(1,1,1); compoe_cadeiras(); glEndList(); }
void compoe_computador_dir(void){ GLUquadricObj *quadric; // inicia a composicao do computador comp_dir = glGenLists(1); glNewList(comp_dir, GL_COMPILE); quadric = gluNewQuadric(); //gluQuadricTexture(quadric, GL_TRUE); GLfloat lado, atras; //compoe computador do lado da porta, 4 colunas for(int i = 0; i<4; i++){ atras = i * 10.0; //3 computadores lado a lado for(int j=0; j<3; j++){ lado = j * 6.0; //base tela quadric = gluNewQuadric(); gluQuadricDrawStyle(quadric, GLU_FILL); gluQuadricOrientation(quadric, GLU_INSIDE); glPushMatrix(); //tras/frente - direita/esquerda - cima/baixo glRotatef(90,1,0,0); glTranslatef (-19-lado, 6.0-atras, 3.9); SOLID_CLOSED_CYLINDER(quadric, 1., 1., 0.15, 30, 1) gluDeleteQuadric(quadric); glPopMatrix(); //apoio tela quadric = gluNewQuadric(); gluQuadricDrawStyle(quadric, GLU_FILL); gluQuadricOrientation(quadric, GLU_INSIDE); glPushMatrix(); glRotatef(90,1,0,0); glTranslatef (-19-lado, 6.8-atras, 2.0); //tras/frente - direita/esquerda - cima/baixo SOLID_CLOSED_CYLINDER(quadric, 0.25, 0.25, 2., 30, 1) gluDeleteQuadric(quadric); glPopMatrix(); //tela glPushMatrix(); //tras/frente - cima/baixo - direita/esquerda glTranslatef (-19-lado, -1.7, 6.5-atras); glScalef (3., 3., 0.2); glutSolidCube (1.0); glPopMatrix(); glColor3f(1,1,1); draw_wall(-17.7-lado, -0.3, 6.35-atras, -20.3-lado, -0.3, 6.35-atras, -20.3-lado, -3, 6.35-atras, -17.7-lado, -3, 6.35-atras, 5); glColor3f(0.2,0.2, 0.2); //cpu glPushMatrix(); //tras/frente - cima/baixo - direita/esquerda glTranslatef (-21.3-lado, -2.8, 6.0-atras); glScalef (1., 3., 3.); glutSolidCube (1.0); glPopMatrix(); draw_wall(-21.8-lado, -1.3, 4.45-atras, -20.8-lado, -1.3, 4.45-atras, -20.8-lado, -4, 4.45-atras, -21.8-lado, -4, 4.45-atras, 6); //teclado glColor3f(0.5,0.5, 0.5); glPushMatrix(); //tras/frente - cima/baixo - direita/esquerda glTranslatef (-18.7-lado, -4.0, 4.0-atras); glScalef (2.9, 0.2, 1.2); glutSolidCube (1.0); glPopMatrix(); draw_wall(-17.3-lado, -3.89, 4.5-atras, -20.1-lado, -3.89, 4.5-atras, -20.1-lado, -3.89, 3.4-atras, -17.3-lado, -3.89, 3.4-atras, 4); glColor3f(0.15,0.15,0.15); //mouse quadric = gluNewQuadric(); gluQuadricDrawStyle(quadric, GLU_FILL); gluQuadricOrientation(quadric, GLU_INSIDE); glPushMatrix(); //tras/frente - cima/baixo - direita/esquerda glTranslatef (-21-lado, -4.1, 4.0-atras); gluSphere(quadric, 0.25, 30,15); gluDeleteQuadric(quadric); glPopMatrix(); } } }
// Main loop. void main_app_loop() { if (current_screen == SCREEN_GAMEPLAY) { // Find out how long the processor has been active (since boot or since sleep) time_now_ms = pulse_get_millis(); // Check if it's been at least 10 ms since the box was last drawn if (time_now_ms - time_last_box_drawn_ms >= game_speed) { score++; // Change the color and speed up the walls when certain scores are reached switch(score) { case 800: wall_color = teal; game_speed-=2; break; case 1600: wall_color = blue; game_speed-=2; break; case 2400: wall_color = purple; game_speed-=2; break; case 3200: wall_color = pink; game_speed-=2; break; case 4000: wall_color = orange; game_speed-=2; break; case 4800: wall_color = red; game_speed-=2; break; } // Erase the old ball and walls by drawing over them draw_ball(ball_x,ball_y, COLOR_BLACK24); for (int i = 0; i < NUM_WALLS; i++) draw_wall(wall_y[i],wall_gap_x[i], COLOR_BLACK24); // Move the ball based on user input if(press && ball_x < SCREEN_WIDTH - BALL_SIZE) ball_x++; else if (!press && ball_x > 0) ball_x--; // Move the walls up for (int i = 0; i < NUM_WALLS; i++) move_wall(i); // Check for collisions between the ball and the wall bool collision = false; for (int i = 0; i < NUM_WALLS; i++) { if ((ball_y == wall_y[i] - BALL_SIZE + 1 || ball_y == wall_y[i] - BALL_SIZE)&& (ball_x < wall_gap_x[i] || ball_x > wall_gap_x[i] + GAP_WIDTH - BALL_SIZE)) { ball_y = wall_y[i] - BALL_SIZE; collision = true; } } // check if ball reached the top if (ball_y == start_y) game_over(); else { if (!collision && ball_y < SCREEN_HEIGHT-BALL_SIZE-1) ball_y = (ball_y + 1); // Draw the new box and walls draw_game_elements(); // update the time_last_box_draw_ms variable time_last_box_drawn_ms = time_now_ms; } } } else if (current_screen == SCREEN_CLOCK) pulse_get_time_date(¤t_time); }
void display(void){ glEnable(GL_DEPTH_TEST); glDepthMask(GL_TRUE); glClearColor(0.5,0.5,0.5,0.5); glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); glPushMatrix(); /* calcula a posicao do observador */ obs[0]=raioxz*cos(2*PI*tetaxz/360); obs[2]=raioxz*sin(2*PI*tetaxz/360); gluLookAt(obs[0],obs[1],obs[2],look[0],look[1],look[2],0.0,1.0,0.0); glCallList(sala); glCallList(biros_esq); glCallList(biros_dir); glCallList(comp_esq); glCallList(comp_dir); glCallList(janelas_sol); glCallList(janelas_entrada); glCallList(grade); glCallList(cadeiras); init_lighting(); //porta glColor3f(1,1,1); glPushMatrix(); //eixo de rotação glTranslatef (4.3, -2.4, 18.25); glRotatef ((GLfloat) eixoy, 0.0, 1.0, 0.0); draw_wall(0.21, 7.6, 0.25, 0.21, 7.6, -5.7, 0.21, -7, -5.7, 0.21, -7, 0.25, 8); draw_wall(-0.21, 7.6, 0.25, -0.21, 7.6, -5.7, -0.21, -7, -5.7, -0.21, -7, 0.25, 8); glTranslatef (-4.3, 2.4, -18.25); glTranslatef (4.3, -2.4, 15.5); //espessura, altura, largura glScalef (0.1, 3.8, 1.5); glutSolidCube (4.0); glPopMatrix(); glPopMatrix(); glutSwapBuffers(); }
void draw_maze(void) { Point2 *p; int i, j, m, n; GLfloat x1, y1; /* draw the interior edges */ for (i=0; i<edges; i++) { if (edge[i].draw == TRUE) { p = vertex + edge[i].vertex1; x1 = p->x; y1 = p->y; p = vertex + edge[i].vertex2; draw_wall(x1,y1,p->x,p->y); } } /* draw the perimeter edges */ for (i=0; i<perimeters; i++) { if (perimeter[i].draw == TRUE) { p = vertex + perimeter[i].vertex1; x1 = p->x; y1 = p->y; p = vertex + perimeter[i].vertex2; draw_wall(x1,y1,p->x,p->y); } } GLfloat mat_specular[]={0.0, 0.0, 0.0, 1.0}; GLfloat mat_diffuse[]={0.0, 0.5, 0.0, 1.0}; GLfloat mat_ambient[]={1.0, 1.0, 1.0, 1.0}; GLfloat mat_shininess=500.0; glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular); glMaterialfv(GL_FRONT, GL_AMBIENT, mat_ambient); glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_diffuse); glMaterialf(GL_FRONT, GL_SHININESS, mat_shininess); //Draw floor float xstart = -(w*wall_spacing)/2; float ystart = -(h*wall_spacing)/2; float xtot = w*wall_spacing; float ytot = h*wall_spacing; glBegin(GL_QUADS); int subDivs = 1000; float dx = xtot/subDivs; float dy = ytot/subDivs; for(i=0;i<subDivs;i++) { for(j=0;j<subDivs;j++) { glNormal3f(0.0,0.0,1.0); glVertex3f(xstart + dx*i, ystart + dy*j, 0); glTexCoord2f((float)(i+0)/subDivs,(float)(j+0)/subDivs); glVertex3f(xstart + dx*i, ystart + dy*(j+1), 0); glTexCoord2f((float)(i+0)/subDivs,(float)(j+1)/subDivs); glVertex3f(xstart + dx*(i+1), ystart + dy*(j+1), 0); glTexCoord2f((float)(i+1)/subDivs,(float)(j+1)/subDivs); glVertex3f(xstart + dx*(i+1), ystart + dy*j, 0); glTexCoord2f((float)(i+1)/subDivs,(float)(j+0)/subDivs); } } glEnd(); GLfloat mat_specular1[]={0.5, 0.0, 0.0, 1.0}; GLfloat mat_diffuse1[]={0.5, 0.0, 0.0, 1.0}; GLfloat mat_ambient1[]={1.0, 1.0, 1.0, 1.0}; glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular1); glMaterialfv(GL_FRONT, GL_AMBIENT, mat_ambient1); glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_diffuse1); glMaterialf(GL_FRONT, GL_SHININESS, 500); glBegin(GL_QUADS); { glNormal3f(0.0,0.0,1.0); glVertex3f(eyeX-.1,eyeY-.1,eyeZ); glVertex3f(eyeX-.1,eyeY+.1,eyeZ); glVertex3f(eyeX+.1,eyeY+.1,eyeZ); glVertex3f(eyeX+.1,eyeY-.1,eyeZ); } glEnd(); lightingMaterialReset(); }
void compoe_sala(void){ GLUquadricObj *quadric; /* inicia a composicao da sala */ sala = glGenLists(1); glNewList(sala, GL_COMPILE); quadric = gluNewQuadric(); //gluQuadricTexture(quadric, GL_TRUE); //ar condicionado esquerdo //glEnable(GL_TEXTURE_GEN_S); //glEnable(GL_TEXTURE_GEN_T); //glBindTexture(GL_TEXTURE_2D, texture_id[1]); //glDisable(GL_TEXTURE_GEN_S); //glDisable(GL_TEXTURE_GEN_T); //glBindTexture(GL_TEXTURE_2D, 0); //glPushMatrix(); //glColor3f(1,1,1); //tras/frente - cima/baixo - direita/esquerda //glTranslatef (2.0, 7.5, -30.5); //espessura, altura, largura //glScalef (0.8, 0.4, 0.15); //glBindTexture(GL_TEXTURE_2D, texture_id[1]); //glutSolidCube (10.0); //glPopMatrix(); //glDisable(GL_TEXTURE_GEN_S); //glDisable(GL_TEXTURE_GEN_T); //glBindTexture(GL_TEXTURE_2D, 0); //janela sobre a porta glPushMatrix(); glColor3f(1,1,1); //tras/frente - cima/baixo - direita/esquerda glTranslatef (4.3, 7.5, 15.5); //espessura, altura, largura glScalef (0.1, 1.0, 1.5); glutWireCube (4.0); glPopMatrix(); //janela do lado da janela sobre a porta glPushMatrix(); //tras/frente - cima/baixo - direita/esquerda glTranslatef (4.3, 7.5, 11.2); //espessura, altura, largura glScalef (0.1, 1.0, 0.5); glutWireCube (4.0); glPopMatrix(); //janela lateral do lado da porta glPushMatrix(); //tras/frente - cima/baixo - direita/esquerda glTranslatef (4.3, -0.2, 11.2); //espessura, altura, largura glScalef (0.1, 2.68, 0.5); glutWireCube (4.0); glPopMatrix(); //janela lateral em baixo da janela lateral do lado da porta glPushMatrix(); //tras/frente - cima/baixo - direita/esquerda glTranslatef (4.3, -7.8, 11.2); //espessura, altura, largura glScalef (0.1, 1.0, 0.5); glutWireCube (4.0); glPopMatrix(); //tela do projetor //glPushMatrix(); //tras/frente - cima/baixo - direita/esquerda //glTranslatef (-16, -1.5, 18.5); //largura, altura, espessura //glScalef (3, 2.8, 0.05); //glutWireCube (5.0); //glPopMatrix(); //quadro glPushMatrix(); glColor3f(0.75,0.75,0.75); //tras/frente - cima/baixo - direita/esquerda glTranslatef (-15.7, 1., 18.5); //largura, altura, espessura glScalef (4, 1.5, 0.05); glutSolidCube (5.0); glPopMatrix(); //teto glPushMatrix(); //tras/frente - cima/baixo - direita/esquerda glTranslatef (-14.85, 10.0, -6.0); //largura, altura, espessura glScalef (10.05, 0.1, 10); glutWireCube (5.0); glPopMatrix(); /* //piso //glEnable(GL_TEXTURE_GEN_S); //glEnable(GL_TEXTURE_GEN_T); glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL); glBindTexture(GL_TEXTURE_2D, textura_plano); glEnable(GL_TEXTURE_2D); glBegin(GL_QUADS); glTexCoord2f(0, 0); glVertex3f(-1, -1, -1); glTexCoord2f(1, 0); glVertex3f(1, -1, -1); glTexCoord2f(1, 1); glVertex3f(1, 1, -1); glTexCoord2f(0, 1); glVertex3f(-1, 1, -1); glEnd(); glDisable(GL_TEXTURE_2D); glColor3f(0.85,0.85,0.85); //tras/frente - cima/baixo - direita/esquerda glPushMatrix(); glTranslatef (-14.85, -10.0, -6.0); //largura, altura, espessura glScalef (10.05, 0.1, 10); //glBindTexture(GL_TEXTURE_2D, texture_id[texture_floor]); glutSolidCube (5.0); glPopMatrix(); //glDisable(GL_TEXTURE_GEN_S); //glDisable(GL_TEXTURE_GEN_T);*/ /*//textura do chao 1 (com quadrado) draw_wall(-55.0f, -25, -25.0f, -55.0f, -25, 25.0f, 55.0f, -25, 25.0f, 55.0f, -25, -25.0f,0);*/ //glBindTexture(GL_TEXTURE_2D, texture_id[0]); // PISO COM TEXTURA glColor3f(1,1,1); draw_wall(20, -9.5, 20, -35, -9.5, 20, -35, -9.5, -40, 20 , -9.5, -40, 1); /*// piso glBindTexture(GL_TEXTURE_2D, texture_id[1]); compoe_piso(); glBindTexture(GL_TEXTURE_2D, 0);*/ // glEnable(GL_TEXTURE_GEN_S); //glEnable(GL_TEXTURE_GEN_T); //glBindTexture(GL_TEXTURE_2D, texture_id[3]); //compoe_cadeiras(); //glDisable(GL_TEXTURE_GEN_S); //glDisable(GL_TEXTURE_GEN_T); //glBindTexture(GL_TEXTURE_2D, 0); glColor3f(0,0,1.0); compoe_grade(); glColor3f(1.0,1.0,1.0); glEnable(GL_TEXTURE_GEN_S); glEnable(GL_TEXTURE_GEN_T); glBindTexture(GL_TEXTURE_2D, texture_id[0]); compoe_parede_exterior(); compoe_parede_entrada(); compoe_parede_quadro_ar(); compoe_janelas_sol(); compoe_janelas_entrada(); // compoe_cadeiras(); glDisable(GL_TEXTURE_GEN_S); glDisable(GL_TEXTURE_GEN_T); glBindTexture(GL_TEXTURE_2D, 0); compoe_biros_esquerdo(); compoe_biros_direito(); glColor3f(0,0,0); compoe_computador_esq(); compoe_computador_dir(); glColor3f(1,1,1); glEnable(GL_TEXTURE_GEN_S); glEnable(GL_TEXTURE_GEN_T); glBindTexture(GL_TEXTURE_2D, texture_id[3]); compoe_cadeiras(); glDisable(GL_TEXTURE_GEN_S); glDisable(GL_TEXTURE_GEN_T); glBindTexture(GL_TEXTURE_2D, 0); glEndList(); }