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
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
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
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)
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.
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.