[Solucionado] Pausar y reanudar programa.

Iniciado por erovira, 10 Marzo 2014, 17:46 PM

0 Miembros y 1 Visitante están viendo este tema.

erovira

Hola, aprovecho esta duda para presentarme, llevo unos 6 meses programando (ingeniería electrónica), así que soy lo que viene siendo un novato. Pero bueno, vamos al tema,

estoy haciendo una programa/juego en C con Devcpp y allegro,  tipo Space Invaders pero más cutre, se generan enemigos y van bajando por un tablero a lo que yo los intento matar, puntuación, distintos niveles... etc.

El problema viene dado ya que no se como jugar con las funciones sleep(), systempause, getchar(), para que cuando apriete la tecla 'P', el juego se quede pausado hasta que apriete cualquier otra tecla y entonces se reanude el juego.
Seguro que es una tontería así que a ver si alguien puede ayudarme, gracias de antemano.

amchacon

Cuando se pulse P, que se llame a esta función:

Código (cpp) [Seleccionar]
do
{
   ch = readkey();
} while (ch != KEY_P);


El bucle no termina mientras no vuelvas a pulsar P.
Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar

Yoel Alejandro

¿Cuál es la diferencia entre readkey() y getchar()?

Disculpen, es que no soy muy entendido en funciones de bliblioteca Windows (si es éste el caso), prefiero dentro de lo posible moverme dentro del C estándar ...
Saludos, Yoel.
P.D..-   Para mayores dudas, puedes enviarme un mensaje personal (M.P.)

erovira

Cita de: amchacon en 10 Marzo 2014, 17:51 PM
Cuando se pulse P, que se llame a esta función:

Código (cpp) [Seleccionar]
do
{
   ch = readkey();
} while (ch != KEY_P);


El bucle no termina mientras no vuelvas a pulsar P.



Hola, muchas gracias, esta tarde lo probaré, necesito alguna libreria especifica para el readkey ()?

amchacon

Cita de: erovira en 12 Marzo 2014, 08:08 AMHola, muchas gracias, esta tarde lo probaré, necesito alguna libreria especifica para el readkey ()?
No, es la misma de Allegro.

Cita de: yoel_alejandro en 12 Marzo 2014, 01:34 AM
¿Cuál es la diferencia entre readkey() y getchar()?

Disculpen, es que no soy muy entendido en funciones de bliblioteca Windows (si es éste el caso), prefiero dentro de lo posible moverme dentro del C estándar ...
getchar() lee un caracter, readkey la pulsación de una tecla.

No es la biblioteca de windows, es la librería multimedia Allegro.
Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar

erovira

Hola, lo acabo de probar y lo que me pasa es que al apretar P, el programa efectivamente se pausa, pero si aprieto P o cualquier otra tecla no pasa nada, es como si se bloquease. Esa parte la tengo asi:


if (keypressed()){
         
              if(key[KEY_P]){
                  do{
                     ch = readkey();
                  }while (ch != KEY_P);
              }
//aqui tengo unas cuantas condiciones mas (mover jugador etc etc...) y luego cierro

}


amchacon

Cambia la condición del bucle por la del if:

Código (cpp) [Seleccionar]
while(!key[KEY_P]);
Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar

erovira

Con esto último si que funciona pero lo he solucionado antes de ver el mensaje, al final lo he hecho así:

if(key[KEY_P]){  
      clear_keybuf();  
     readkey();              
}


Muchas gracias