こんにちは、エンジニアのオオバです。

下記の記事での描画は、MessagePump.Runメソッドを使用しているため、ループ処理の間隔を制御できていませんでした。

今回はFPSを意識して描画処理を実行してみようと思います。

やりたいことは、Draw関数の呼び出し回数をFPSに合わせて制御するということになります。
というおとで、

MessagePump.Run(this, Draw);  

MessagePump.Run(this, Loop);  

と変えて

void Loop()  
{
    // FPSを管理するサムシングを記述する  
    Draw();  
}

このようにDraw関数はそのまま、Loop関数内にFPS制御処理を書いていきます。

いきなりコードですが、こうなります。
FPSを意識したループ処理の部分コード · GitHub

あまり説明することはありませんが、やっていることはシンプルです。

この2つの処理で実装しています。

以上

全体コードも一応載せておきます。

FpsLoopFull.cs · GitHub

オススメ記事
検証環境