[実践] 1フレーム待つ関数を書くスレッド
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNG抽象的な話だけで具体的にどうするのというのは書かれてません。
そんなわけで、1フレーム時間が1/60secだと仮定して
なるべく環境に依存しない1フレーム待つ関数を実際に書いてみるスレッドです。
こう書いてみたんだけど、これでいいの?
と言ってコードを見せるのもありです。
00021
NGNGこれでSetFPSしてWaitFrameを一度呼べば1フレーム待てるんですか?
Uint32はunsigned int、SDL_GetTicksはWin32だとtimeGetTime、
SDL_DelayはWin32だとSleepと読み替えてください。
static Uint32 fps;
static Uint32 interval;
void
SetFPS( unsigned int _fps ) {
    fps = _fps;
    interval = 1000 / fps;
}
void
WaitFrame( void ) {
    Uint32 nowtime;
    Uint32 lefttime;
    static Uint32 lasttime = 0;
    nowtime = SDL_GetTicks();
    lefttime = lasttime + interval - nowtime;
    if ( lasttime + interval > nowtime ) {
        SDL_Delay( lefttime );
        lasttime = nowtime + lefttime;
    } else {
        lasttime = nowtime;
    }
}
0003デフォルトの名無しさん
NGNG0004デフォルトの名無しさん
NGNG0005デフォルトの名無しさん
NGNG0006デフォルトの名無しさん
NGNG0007デフォルトの名無しさん
NGNG■ このスレッドは過去ログ倉庫に格納されています