void Administrador::ventanaPrincipal() { sf::Texture text_fondo, txt_lateral, txt_nuevaRuta, text_consultar, text_eliminar, text_salir; sf::Sprite back_fondo, back_lateral, back_nuevaRuta, back_consultar, back_eliminar, back_salir; sf::Texture txt_puntos[23]; sf::Sprite back_puntos[23]; window.create(sf::VideoMode(1280,680),"Transportes Inter-Urbanos"); window.setPosition(sf::Vector2i(50,0)); text_fondo.loadFromFile("mapa.png"); back_fondo.setTexture(text_fondo); txt_lateral.loadFromFile("barra_lateral.png"); back_lateral.setTexture(txt_lateral); back_lateral.setPosition(1100,0); txt_nuevaRuta.loadFromFile("botones/nueva_ruta.png"); back_nuevaRuta.setTexture(txt_nuevaRuta); back_nuevaRuta.setPosition(1105,60); text_consultar.loadFromFile("botones/consultar_ruta.png"); back_consultar.setTexture(text_consultar); back_consultar.setPosition(1105,130); text_eliminar.loadFromFile("botones/eliminar_ruta.png"); back_eliminar.setTexture(text_eliminar); back_eliminar.setPosition(1105,200); text_salir.loadFromFile("botones/btnSalir.png"); back_salir.setTexture(text_salir); back_salir.setPosition(1105,270); ruta->llenarPuntos(); ruta->setAdyacencias(); ruta->setCaminos(); ruta->setPesos(); ruta->rutasPosibles(); while(window.isOpen()) { sf::Event event; while(window.pollEvent(event)) { mouse = window.mapPixelToCoords(sf::Mouse::getPosition(window)); } if(utility->clickSprite(back_nuevaRuta,mouse)) { crearRuta(); } if(utility->clickSprite(back_consultar,mouse)) { ventanaConsultarCaminos(); } if(utility->clickSprite(back_eliminar,mouse)) { ventanaEliminar(); } if(utility->clickSprite(back_salir,mouse)) { window.close(); } window.draw(back_fondo); window.draw(back_lateral); window.draw(back_nuevaRuta); window.draw(back_consultar); window.draw(back_eliminar); window.draw(back_salir); dibujarPuntos(txt_puntos, back_puntos); drawLineas(); window.display(); } }
void display (void) { bola *aux = m->lista; puntos *auxPuntos = m->ls; rayo *auxRayo = m->lr; marca *auxMarca = m->lw; GLuint i; unsigned char ganas[] = "ganas"; unsigned char pierdes[] = "pierdes"; unsigned char adicional[] = "espacio para jugar escape para salir"; unsigned char textoPausa[] = "pausa"; unsigned char pausaAdicional[] = "p o espacio para continuar"; unsigned char puntuacionTexto[] = "00000000000"; unsigned char aciertosTexto[] = "00000/00000"; unsigned char nivelTexto[] = "000000"; char auxTexto[12]; glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glMatrixMode (GL_MODELVIEW); // dibujar la pared dibujarPared (m->p); // dibujar las bolas while (aux) { dibujarBola (aux); aux = aux->siguiente; } // dibujar los rayos while (auxRayo) { dibujarRayo (auxRayo); auxRayo = auxRayo->siguiente; } // dibujar las puntuaciones while (auxPuntos) { dibujarPuntos (auxPuntos); auxPuntos = auxPuntos->siguiente; } // dibujar las marcas en las paredes while (auxMarca) { dibujarMarca (auxMarca); auxMarca = auxMarca->siguiente; } // dibujar al jugador if (posicionCamara != 0) // en primera persona no se dibuja dibujarJugador (m->j); // mover la camara moverCamara (m->c); // escribir texto glPushMatrix(); glMatrixMode (GL_PROJECTION); glLoadIdentity(); gluOrtho2D (0.0, TAMANYOVENTANA, 0.0, TAMANYOVENTANA); glMatrixMode (GL_MODELVIEW); glLoadIdentity(); glColor3f (0.0, 0.5, 1.0); // si se ha perdido if (!m->j->vivo) { glutSetCursor (GLUT_CURSOR_NONE); glRasterPos2i (TAMANYOVENTANA / 2 - glutBitmapLength (GLUT_BITMAP_HELVETICA_18, pierdes) / 2, TAMANYOVENTANA / 2 + 18); for (i = 0; pierdes[i]; i++) glutBitmapCharacter (GLUT_BITMAP_HELVETICA_18, pierdes[i]); glRasterPos2i (TAMANYOVENTANA / 2 - glutBitmapLength (GLUT_BITMAP_HELVETICA_12, adicional) / 2, TAMANYOVENTANA / 2 - 12); for (i = 0; adicional[i]; i++) glutBitmapCharacter (GLUT_BITMAP_HELVETICA_12, adicional[i]); } // si se ha ganado else if (!m->lista) { glutSetCursor (GLUT_CURSOR_NONE); glRasterPos2i (TAMANYOVENTANA / 2 - glutBitmapLength (GLUT_BITMAP_HELVETICA_18, ganas) / 2, TAMANYOVENTANA / 2 + 18); for (i = 0; ganas[i]; i++) glutBitmapCharacter (GLUT_BITMAP_HELVETICA_18, ganas[i]); glRasterPos2i (TAMANYOVENTANA / 2 - glutBitmapLength (GLUT_BITMAP_HELVETICA_12, adicional) / 2, TAMANYOVENTANA / 2 - 12); for (i = 0; adicional[i]; i++) glutBitmapCharacter (GLUT_BITMAP_HELVETICA_12, adicional[i]); } // si se esta en modo pausa if (pausa) { glutSetCursor (GLUT_CURSOR_LEFT_ARROW); glRasterPos2i (TAMANYOVENTANA / 2 - glutBitmapLength (GLUT_BITMAP_HELVETICA_18, textoPausa) / 2, TAMANYOVENTANA / 2 + 18); for (i = 0; textoPausa[i]; i++) glutBitmapCharacter (GLUT_BITMAP_HELVETICA_18, textoPausa[i]); glRasterPos2i (TAMANYOVENTANA / 2 - glutBitmapLength (GLUT_BITMAP_HELVETICA_12, pausaAdicional) / 2, TAMANYOVENTANA / 2 - 12); for (i = 0; pausaAdicional[i]; i++) glutBitmapCharacter (GLUT_BITMAP_HELVETICA_12, pausaAdicional[i]); } // dibujar puntuacion // covertir puntuacion a texto sprintf (auxTexto, "%06d", puntuacion); for (i = 0; auxTexto[i]; i++) puntuacionTexto[i] = auxTexto[i]; puntuacionTexto[i] = '\0'; glRasterPos2i (TAMANYOVENTANA - glutBitmapLength (GLUT_BITMAP_HELVETICA_18, puntuacionTexto), TAMANYOVENTANA - 18); for (i = 0; puntuacionTexto[i]; i++) glutBitmapCharacter (GLUT_BITMAP_HELVETICA_18, puntuacionTexto[i]); // dibujar aciertos // convertir aciertos y disparos a texto sprintf (auxTexto, "%03d/%03d", aciertos, disparos); for (i = 0; auxTexto[i]; i++) aciertosTexto[i] = auxTexto[i]; aciertosTexto[i] = '\0'; glRasterPos2i (TAMANYOVENTANA - glutBitmapLength (GLUT_BITMAP_HELVETICA_12, aciertosTexto), TAMANYOVENTANA - 18 - 12 - 4); for (i = 0; aciertosTexto[i]; i++) glutBitmapCharacter (GLUT_BITMAP_HELVETICA_12, aciertosTexto[i]); // dibujar el nivel // covertir nivel a texto sprintf (auxTexto, "%d", nivel); for (i = 0; auxTexto[i]; i++) nivelTexto[i] = auxTexto[i]; nivelTexto[i] = '\0'; glRasterPos2i (TAMANYOVENTANA - glutBitmapLength (GLUT_BITMAP_HELVETICA_12, nivelTexto), TAMANYOVENTANA - 18 - 12 - 4 - 12 - 4); for (i = 0; nivelTexto[i]; i++) glutBitmapCharacter (GLUT_BITMAP_HELVETICA_12, nivelTexto[i]); reshape (TAMANYOVENTANA, TAMANYOVENTANA); glMatrixMode (GL_MODELVIEW); glPopMatrix(); glutSwapBuffers(); frames++; }