以下の内容はhttps://toburau.hatenablog.jp/entry/20080522/1211478992より取得しました。


フレーム

自機をプレイヤーの操作で移動するように実装したところ、なんかスムーズにいかず引っかかる感じがした。
そこで、DirectXのサンプルフレームワークのシーンをアップデートする関数

void CALLBACK OnFrameMove( double fTime, float fElapsedTime, void* pUserContext )
{
}

の引数にあるfElapsedTime(経過時間)を調べてみたら、だいたい0.0167くらいの値なんだけど、ときどき倍くらいの値になったりすることがあった。
そこで、このfElapsedTimeを考慮して移動量を求めるようにした。
たとえば、次のような感じだったのを、

void FrameMove()
{
    x += 10;
}

次のように変更。値は適当。

void FrameMove(float fElapsedTime)
{
    x += fElapsedTime * 100;
}

これで前よりはスムーズに移動するようになった。でもどきどき引っかかるような感じは多少残っている。これは単純に描画の更新が遅れているからかな。




以上の内容はhttps://toburau.hatenablog.jp/entry/20080522/1211478992より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14