#include "SDL.h"
int SDL_SetTimer(Uint32 interval, SDL_TimerCallback callback);
/* 計時器回調函數的原型 */ typedef Uint32 (*SDL_TimerCallback)(Uint32 interval);
設置一個經過指定毫秒數後運行的回調函數。回調函數接受當前計時器的時間間隔,並返回下一計時器的時間間隔。若返回值與所傳遞的值一樣,則週期警報會繼續。否則安排一個新的報警器。
可以通過調用SDL_SetTimer(0, NULL);來退出當前運行的計時器。
計時器回調函數可以在不同于主程序的線程中運行。因此,不應該在它之內調用任何函數。
此計時器的最大分辨率為10毫秒。這意味著,在一個未加載的系統,如果你請求一個16毫秒的計時器,你的回調函數將會返回大約20毫秒。如果你想設置一個每秒30幀(每33毫秒)的更新標志,你應當設置一個30毫秒的計時器(參見以下的例子)。
如果你要使用這個函數,你得將SDL_INIT_TIMER傳遞給SDL_Init。
雖然這個函數保持兼容性,但已經被支持多個計時器的新計時器函數SDL_AddTimer和SDL_RemoveTimer代替。
SDL_SetTimer((33/10)*10, my_callback);
2010年6月22日