戻る


SDL_AddTimer

タイマーを作成する。

使い方

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

intervalはミリ秒で指定。

callbackは指定時間経過後に実行されるコールバック関数の関数ポインタ。この関数の定義は以下のとおり。

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

paramはその実行される関数の引数。

タイマー作成成功時はタイマーIDが返る。エラーの時はNULLが返る。

コールバック関数の返り値はinterval。タイマー処理を終了する場合は、0を返す。

サンプル

#include <SDL/SDL.h>

/* 終了フラグ */
int endFlag = 0;

/* コールバック関数(プログラム終了処理) */
Uint32 EndProgram(Uint32 interval, void* param){
	/* 終了フラグを1にする。 */
	endFlag = 1;

	/* タイマーを終了する */
	return 0;
}

int main(int argc, char* argv[]){
	/* タイマーID */
	SDL_TimerID id;

	/* SDLライブラリ初期化 */
	SDL_Init(SDL_INIT_EVERYTHING);

	/* ウインドウを開く */
	SDL_SetVideoMode(640, 480, 0, SDL_SWSURFACE);

	/* タイマー作成 */
	id = SDL_AddTimer(3000, &EndProgram, NULL);

	/* 終了までループ */
	while(endFlag == 0){
		/* CPUを休めるためのスリープ処理 */
		SDL_Delay(10);
	}

	/* タイマーの破棄 */
	SDL_RemoveTimer(id);

	SDL_Quit();
	return 0;
}

3秒後にプログラムを終了する。

関連項目