上一頁 | 首頁

SDL_AddTimer

章節:SDL API 參考 (3)
更新2001年9月11日 星期二 23:01
索引
 

名稱

SDL_AddTimer - 增加一個計時器,它會在經過所指定的毫秒數後調用一個回調函數。  

摘要

#include "SDL.h"

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

回調函數

/* "新"的計時器回調函數的類型定義 */
typedef Uint32 (*SDL_NewTimerCallback)(Uint32 interval, void *param);

 

描述

增加一個計時器,它會在經過所指定的毫秒數後調用一個回調函數。回調函數接受當前計時器的時間間隔以及SDL_AddTimer所要調用的參數,並返回下一計時器時間間隔。若回調函數的返回值跟所傳遞的時間間隔值一樣,則定期的警報會繼續,否則會安排新的警報。

可以通過以SDL_AddTimer所返回的計時器ID作為參數調用SDL_RemoveTimer來退出當前運行的計時器。

計時器回調函數可以在不同于主程序的線程中運行。因此,不應該在它之內調用任何函數。然而,你總是可以調用SDL_PushEvent

計時器的粒度依賴于平台,但你應當以至少10毫秒為單位計。因為這是最為普遍的數值。這意味著,在一個未加載的系統,如果你請求一個16毫秒的計時器,你的回調函數將會返回大約20毫秒。如果你想設置一個每秒30幀(每33毫秒)的更新標志,你應當設置一個30毫秒的計時器(參見以下的例子)。如果你要使用這個函數,你得將SDL_INIT_TIMER傳遞給SDL_Init 

返回值

為已加載的計時器返回ID值。如果出錯,則返回NULL 

例子

my_timer_id = SDL_AddTimer((33/10)*10, my_callbackfunc, my_callback_param);

 

另見

SDL_RemoveTimerSDL_PushEvent  

譯者

石仔<guoshimin57@gmail.com>  

中文版主頁

http://guoshimin.users.sf.net  

中文版最後更新時間

2010年6月22日


 

索引

名稱
摘要
回調函數
描述
返回值
例子
另見
譯者
中文版主頁
中文版最後更新時間