/
Inicio :: Foros

 F.A.Q.F.A.Q.                  Conéctese para revisar sus mensajesConéctese para revisar sus mensajes   

SDL Problema al leer teclado.

 
      Índice del Foro elrincondelc.com -> Gráficos
Ver tema anterior :: Ver siguiente tema  
AutorMensaje
Anastacius



Registrado: 26 Oct 2013
Mensajes: 41

MensajePublicado: 26/12/2013 11:28 am
Título: SDL Problema al leer teclado.

Buenos dias.

He estado trabajando en un videojuego bastante simple, cuando me di cuenta de que una funcion para cerrar no funcionaba... traslade la funcion a un proyecto aparte, la puse sola, modifique el codigo para que fuese un programa, y aun asi, no funciona... hay algo que se me esta pasando...


Dejo el codigo...

Código:
 
#include <SDL.h>
bool stop;
SDL_Surface *screen;
int main(int argc, char **argv)
{
    SDL_Init(SDL_INIT_VIDEO);
    screen = SDL_SetVideoMode(800, 600, 24, SDL_HWSURFACE | SDL_DOUBLEBUF);
    Uint8 *Movement;
    while(stop == false){
    Movement = SDL_GetKeyState(NULL);
    if(Movement[SDLK_ESCAPE] == 1){stop = true;}
    SDL_Flip(screen);
    SDL_Delay(100);
    }
   
return 0;
}


Desde ya agradezco su ayuda.
_________________
Programacion en C - HTML - Batch -
Aprendiendo : Java...
Volver arriba
dehm



Registrado: 29 Abr 2011
Mensajes: 139

MensajePublicado: 26/12/2013 1:57 pm
Título:

Hola:
¿Podría ser que no inicializas la variable stop a false, al principio?

Saludos
_________________
Aprendiendo
Volver arriba
daltomi



Registrado: 28 Abr 2007
Mensajes: 335
Ubicación: Argentina

MensajePublicado: 26/12/2013 5:30 pm
Título:

Faltaría una llamada a SDL_PumpEvents
Volver arriba
Dirección AIM
Anastacius



Registrado: 26 Oct 2013
Mensajes: 41

MensajePublicado: 26/12/2013 6:37 pm
Título:

dehm, en realidad no era el problema, puesto que si el stop no se hubiese inicializado como false, el while no se hubiese ejecutado y la ventana solo se cerraria al instante. Aun asi, era una posible semilla para un problema a futuro. Las inicializaciones son muy importantes.

Daltomi, tenias razon, solo era necesario llamar a PumpEvents... ahi lei el link que me dejaste, muy explicativo, ahora la funcion anda de lujo y de mientras solucione otros problemas parecidos.

Muchas gracias a ambos Smile

You can only call this function in the thread that set the video mode

Por cierto, esto a que hace referencia... Es decir que solo se puede colocar donde esta seteado el modo de video... Hace referencia a la funcion SetVideoMode() ? O sea que si yo inicializo el modo de video en una funcion, no puedo colocar el Pumpevent en otra?
_________________
Programacion en C - HTML - Batch -
Aprendiendo : Java...
Volver arriba
daltomi



Registrado: 28 Abr 2007
Mensajes: 335
Ubicación: Argentina

MensajePublicado: 26/12/2013 8:31 pm
Título:

Anastacius escribió:

You can only call this function in the thread that set the video mode
O sea que si yo inicializo el modo de video en una funcion, no puedo colocar el Pumpevent en otra?


Se refiere a un hilo de ejecución diferente del principal o main thread.
El porque no lo permite es algo interno de SDL que desconozco, pero se que existen otras func. que son thread safe.

Saludos.
Volver arriba
Dirección AIM
Anastacius



Registrado: 26 Oct 2013
Mensajes: 41

MensajePublicado: 01/01/2014 12:01 pm
Título:

Gracias por todo... cuando tenga algo mas o menos armado subo el videojuego para ver que les parece...
_________________
Programacion en C - HTML - Batch -
Aprendiendo : Java...
Volver arriba
      Índice del Foro elrincondelc.com -> Gráficos
Página 1 de 1Todas las horas están en GMT - 8 Horas

 
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas

(c) ElRincondelC.com

Un proyecto de UrlanHeat.com