help! (SDL + C++)

m3l0

buenas, hace poco empece a aprender de esta librería, y empece un jueguecito, para ir aprendiendo a usar esta librería.

mi problema ahora es que quiero que cada 120 segundos ocurra una cosa todo el rato, pero no lo he logrado.

os pongo un poco mejor en situación.

tengo una clase echa para el timer, con una funcion get_ticks() que me devuelve los ticks actuales menos los ticks de cuando se inicio el timer. probe a poner un simple.

if ((mytimer.get_ticks()/1000)%120 == 0)

pero no me funciono, por que en ese segundo funcionan varios frames. antes usaba un SDL_delay dentro del if, para que solo pille un frame, pero dejaba un feo delayen el juego.

también tengo el juego echo para que funcione a 50 fps, con un SDL_delay(1000/50); y intente usar una variable frame, para que cuando fuera uno de los segundos y fuera el frame 1 lo hiciera, pero no lo logre.

lamento haberme explicado tan mal, y haberme extendido tanto, pero llevo varios días con esto y me estoy volviendo loco.

también me vendría bien, si me pudieseis mostrar distintas formas de hacer esto, Gracais por adelantado.

elkaoD

No sé si te he entendido bien, pero...

Inicialización:

boolean hecho = false; // Inicializar a true si no quieres que se ejecute en el sec 0

Frame:

int secsMod = (mytimer.get_ticks()/1000)%120;
if (hecho == false && secsMod == 0) {
    loquesea();
    hecho = true;
} else if (secsMod == 1) {
    hecho = false;
}
1 1 respuesta
m3l0

#2 muchisimas gracias!, me funciono perfecto

Usuarios habituales

  • m3l0
  • elkaoD