No se Detiene el SDL_timerID

Tratamos sobre el manejo de APIs frecuentemente utilizadas en el desarrollo de videojuegos, como SDL, pygame o SFML.

No se Detiene el SDL_timerID

Notapor leonel06033 » Jue Nov 05, 2009 9:01 pm

Hola amigos:

bueno he creado una función que es mi callback utilizando timers sobre SDL, ahora llamo a la función callback, dentro de ella existe un ciclo infinito que es el encargado de mover un caracter del juego por tiempo indefinido, cuando mando de destruir con el SDL_RemoveTimer el timer sigue en ejecución no como detenerlo.

diganme amigos que debo hacer.

saludos.
Avatar de Usuario
leonel06033
 
Mensajes: 10
Registrado: Lun May 25, 2009 5:15 pm

Notapor hugoruscitti » Vie Nov 06, 2009 1:50 pm

Creo que el inconveniente está en que utilices un bucle
dentro de la función que ejecutas en el temporizador.

Si mal no entendí, tu función "callback" nunca regresa... por
eso no puedes eliminarla.

El proceso para crear temporizadores en SDL es ligeramente
distinto, la función "callback" que pides ejecutar en un intervalo
de tiempo tiene que hacer una sola cosa, pero retornar pronto,
no puede tener ciclos infinintos o algo así.

Cuando ejecutas AddTimer con la función, SDL almacena
en un vector que
tiene que ejecutar tu función cada "n" milisegundos, esa tarea
de ejecutar una y otra vez tiene un identificador (el que
retorna AddTimer). Entonces, para deterner esa tarea, simplemente
tienes que llamar a RemoveTime con el identificador que tenías.

Detener una tarea es simplemente decirle a SDL: "no ejecutes
nuevamente esta función otra vez", y SDL quita la tarea de
su vector y no vuelve a llamar a tu función "callback"...
Avatar de Usuario
hugoruscitti
Site Admin
 
Mensajes: 1242
Registrado: Dom Jul 30, 2006 3:57 am
Ubicación: Buenos Aires, Argentina


Volver a Sobre las bibliotecas multimedia

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado

cron