Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Hacer Un Pausa Usando Sdl

Iniciado por javiel, 15 de Julio de 2004, 08:19:51 PM

« anterior - próximo »

javiel

 Bueno, estoy intentando hacer una pausa en un juego. La idea es hacer la pausa en el juego y que aparezca un poco mas oscura la pantalla. Para ello solo tengo que parar el juego, crear un cuadro negro que ocupe toda la pantalla y darle opacidad, encima le escribo "Pausa" y cuando pulse un tecla a seguir jugando. Hasta ahí fácil.

Pero ahora quiero hacer algo un poco mas complicado, pero no se me ocurre como hacerlo. La idea es hacer una pausa en el juego, poner el cuadro negro para ponerlo un poco oscurito y luego ir escribiendo un texto encima.

El problema es que mientras voy escribiendo el texto el cuadro negro se tiene que ir actualizando, por lo que cada vez se va oscureciendo mas la pantalla hasta que se ve completamente negra.

No se si me he explicado muy bien, creo que no mucho, pero no puedo explicarlo mejor.

La primera pantalla aparece el juego parado y la pantalla negra a un 10% de opacidad, al volver a actualizar la pantalla negra con otro 10% de opacidad se queda en 20% así hasta estar negra. Como un FADE-OUT

¿se os ocurre alguna forma de hacer esto??

Gracias a todos
uper-Tirititran: el superhéroe gaditano (http://www.super-tirititran.com)

vicho

 podrias hacer algo asi para la pausa

pausa()
{
while(1)
{
 if(hayquesalir)
   break;
cambiamosopacidad();
escribimostexto();
hayquesalir=checkemossidebemossalir();
}
}


yo hacia efectos en blanco y negro etc, era bien entretenido lo que se podia hacer en la pausa

fiero

 javiel lo que tienes que hacer es guardar el fondo sombreado en una imagen temporal y luego poner el fondo guardado cada vez que cambies el texto.

un saludo
www.videopanoramas.com Videopanoramas 3D player

TheAzazel

Cita de: "fiero"javiel lo que tienes que hacer es guardar el fondo sombreado en una imagen temporal y luego poner el fondo guardado cada vez que cambies el texto.

un saludo
Exacto!  (ole)  

samsaga2

 Vaya formas de compilcarse uno la vida:


bucleprincipal() {
 if(juego_pausado) {
    bucle_pausa();
 } else
    bucle_juego();

 cualquier_otro_evento_que_tengan_en_comun();
 flipar_doublebuffer();
}


No se, no le veo mucha compilacion. En el bucle_pausa renderizas lo que toque en cada frame y listo.

javiel

 lo de guardar la imagen sobreada lo había pensado, hay algunas funciones en SDL para guardar superficies en BMP, pero ¿no comerá muchos recursos?? Pensaba que si, pero habrá que probarlo.


samsaga2, con el codigo que comentas creo que sigo teniendo el mismo problema. El problema es que en la funcion bucle_pausa(); tengo que seguir actualizando la pantalla, NO es una pantalla estática.
uper-Tirititran: el superhéroe gaditano (http://www.super-tirititran.com)






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.