| Ver tema anterior :: Ver siguiente tema |
| Autor | Mensaje |
|---|
Anastacius
Registrado: 26 Oct 2013 Mensajes: 41
| Publicado: 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: 143
| Publicado: 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
| Publicado: 26/12/2013 5:30 pm | | | Título: |
| | Faltaría una llamada a SDL_PumpEvents |
|
| Volver arriba | |
 |
|
Anastacius
Registrado: 26 Oct 2013 Mensajes: 41
| Publicado: 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 
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
| Publicado: 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 | |
 |
Anastacius
Registrado: 26 Oct 2013 Mensajes: 41
| Publicado: 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 | |
 |
|
|