Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: SDL vastaava JS:n SetTimeout-funktiolle

punppis [28.05.2008 22:28:54]

#

Tarkoitus olisi tehdä C++/SDL -yhdistelmällä sellainen simulaattori, jossa tarvitsee tehdä jotain tietyn ajan välein (monta samaan aikaan, eri ajoilla).

Esim. Jos mulla on vaikka kolme lukua siinä ikkunassa, niin yksi pitäisi saada suurennettua yhdellä 0.5 sekunnin välein, yksi 1 sekunnin välein ja yksi 1.5 sekunnin välein.

JavaScriptillä tämä onnistuu SetTimeout-funktiolla, johon annetaan parametreina funktio, ja aika jonka päästä sitä kutsutaan. Näitä voi siis olla vaikka kuinka monta kerralla päällä, eikä se vaikuta muihin.

EDIT: Tuli muuten väärälle alueelle :(

Metabolix [28.05.2008 23:05:59]

#

SDL kirjoitti:

typedef Uint32 (*SDL_NewTimerCallback)(Uint32 interval, void *param);

SDL_TimerID SDL_AddTimer  (Uint32 interval, SDL_NewTimerCallback callback, void *param);
SDL_bool SDL_RemoveTimer  (SDL_TimerID id);

Eli käytännössä suunnilleen näin:

SDL_TimerID ajastin;
int loppu = 0;

Uint32 funktio(Uint32 interval, void *param)
{
  printf("Aika.\n");
  loppu = 1;
  SDL_RemoveTimer(ajastin);
}

// main...
ajastin = SDL_AddTimer(2000, funktio, NULL);
while (!loppu) {
  printf("Odotetaan...\n");
  SDL_Delay(100);
  SDL_PumpEvents();
}

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta