1

私は C++ を使用してゲームを開発していますが、私の問題に対するより良いアプローチがわかりません。オブジェクトを含む配列がありgameObject、それぞれにアニメーションのフレームを含む配列があり、ループしてゲームでアニメーションを表示します。アニメーションは時間ベースであり、最後のフレームが表示されてから経過した時間 ( deltaTime) をオブジェクトに通知して、この反復で表示するフレームを計算する必要があります。ここまでは大丈夫。deltaTimeセッターメソッドでオブジェクトにフィードしても大丈夫ですか? または、各オブジェクトにグローバル変数へのポインターがあればもっと良いでしょうか? または、パフォーマンスと組織に関して、ここでさらに優れた別のアプローチがありますか? 何百ものオブジェクトがあることに注意してください。お時間をいただきありがとうございます:)

4

1 に答える 1

1

一般に、グローバル変数は避けてください。オブジェクトをループして、deltaTimeそれぞれに を渡します。

for (auto &gameObject : gameObjects)
{
    gameObject.Update(deltaTime);
}

各オブジェクト内に時間を格納することはお勧めしません。「将来」のために必要になると思われるものはすべて、内で行う必要があるためですUpdate

于 2012-11-14T21:41:10.730 に答える