Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Mostrar mensajes por un periodo de tiempo

Estas en el tema de Mostrar mensajes por un periodo de tiempo en el foro de C/C++ en Foros del Web. Hola, estoy trabajando en un juego, y quiero que me digan la forma mas eficiente que se les ocurre para mostrar los mensajes (trabajo en ...
  #1 (permalink)  
Antiguo 21/08/2010, 08:17
 
Fecha de Ingreso: mayo-2008
Ubicación: Chile
Mensajes: 189
Antigüedad: 16 años
Puntos: 3
Mostrar mensajes por un periodo de tiempo

Hola, estoy trabajando en un juego, y quiero que me digan la forma mas eficiente que se les ocurre para mostrar los mensajes (trabajo en devc++, windows, con SDL, y SDL_ttf para escribir).
Esta es la situacion:
-llega un mensaje del servidor, por ejemplo: "haz avanzado al nivel 2"
-los mensajes los almaceno en un std::vector
-pero lo que necesito es que el mensaje se muestre por 5 segundos y despues se desaparezca, pero en esos 5 segundos deben seguir ocurriendo otros eventos, asi que no seriviría un Sleep o SDL_Delay.

Lo que se me ocurria era utilizar un timer, y ya tengo uno para controlar los frames por segundo. No se si puedo utilizar ese mismo timer, crear uno especial para los mensajes o alguna solocion que a mi no se me ocurre pero talvez a ustedes si.

cualquier ayuda se agradece.
__________________
si tienes entre 18 y 20 años... entonces tienes 19 años xD
  #2 (permalink)  
Antiguo 21/08/2010, 08:43
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Mostrar mensajes por un periodo de tiempo

No conosco SDL pero viene una clase Timer para utilizar.... Supongo que debe ser bastante buena, como para usarla. Deberias poder setear varios timer a la vez!

La otra podria ser, si sabes cuantos ticks o frame se hacen en un segundo, seria generarte tus "propios timers".
  #3 (permalink)  
Antiguo 22/08/2010, 12:41
 
Fecha de Ingreso: mayo-2008
Ubicación: Chile
Mensajes: 189
Antigüedad: 16 años
Puntos: 3
Respuesta: Mostrar mensajes por un periodo de tiempo

logre lo que queria, pero me surgio una duda, cada vez que recibo un mensaje hago un push.back(), suponiendo que despues de un largo periodo de tiempo que el usuario juega y recibe muchos mensajes,
¿que pasa con el vector?
supongo que debe tener un limite, y si se llega al limite no me gustaria que el programa accediera a memoria que no corresponde o hubiese algun problema y se cierre, ¿puede pasar eso? ¿como lo soluciono si es que pasa?
__________________
si tienes entre 18 y 20 años... entonces tienes 19 años xD
  #4 (permalink)  
Antiguo 22/08/2010, 13:48
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Mostrar mensajes por un periodo de tiempo

Podrias llevar un control de lo elementos y al ancanzar cierto valor limpear el buffer, o borrar los ultimos!!
  #5 (permalink)  
Antiguo 22/08/2010, 17:06
 
Fecha de Ingreso: mayo-2008
Ubicación: Chile
Mensajes: 189
Antigüedad: 16 años
Puntos: 3
Respuesta: Mostrar mensajes por un periodo de tiempo

eso de borrar los ultimos elemento me gusta, pero ahi tendria que usar Colas de doble fin (deque) o puedo seguir usando la clase std::vector?
__________________
si tienes entre 18 y 20 años... entonces tienes 19 años xD
  #6 (permalink)  
Antiguo 23/08/2010, 04:38
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 15 años, 10 meses
Puntos: 61
Respuesta: Mostrar mensajes por un periodo de tiempo

Cita:
Iniciado por Tikitios Ver Mensaje
eso de borrar los ultimos elemento me gusta, pero ahi tendria que usar Colas de doble fin (deque) o puedo seguir usando la clase std::vector?
usar pop_back podria servirte

http://www.cplusplus.com/reference/stl/vector/pop_back/
  #7 (permalink)  
Antiguo 23/08/2010, 17:39
 
Fecha de Ingreso: mayo-2008
Ubicación: Chile
Mensajes: 189
Antigüedad: 16 años
Puntos: 3
Respuesta: Mostrar mensajes por un periodo de tiempo

Cita:
Iniciado por CalgaryCorpus Ver Mensaje
no se si me equivoco, pero tengo entendido que pop_back elimina el ultimo elemento introducido, y yo necesito eliminar el mas viejo.
__________________
si tienes entre 18 y 20 años... entonces tienes 19 años xD
  #8 (permalink)  
Antiguo 23/08/2010, 19:10
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Mostrar mensajes por un periodo de tiempo

Deberias usar una cola, mas que una pila... pero la verdad no se como trabaja la clase vector.

Etiquetas: mensajes
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:34.