まず、ゲームをプログラミングしています。現在、render関数には、2つの異なる関数への2つの呼び出しがあります。1つはテキストをレンダリングし、もう1つはスプライトをレンダリングします。
私のコンピューター(AMD Phenom(tm)II X4 955プロセッサー(4 CPU)、〜3.2GHz、4096MB RAM DDR2、NVIDIA GeForce GTX 285)では、約200スプライトをレンダリングする場合は約2200 FPS、約100FPSの場合はレンダリング速度があります。約14,500をレンダリングします。
レンダリングしている各オブジェクトの情報を格納するためにベクトルを使用しており、多くの描画呼び出しで1つのスプライトを使用しています。
C++用に完全に最適化されたVS2008リリースモード。左右が時期尚早に最適化されないと聞いたことがありますが、現時点では、それは私にとってはうまく機能していますが、特定のコンピューターではあまりうまく機能していません。
不確定な方法で、フレームごとにベクトルから物事をプッシュおよびプルしているため、配列のベクトルを変更することは想像できません。ほぼランダムに。
私はフロートとダブルを試しましたが、速度も同じです。
DirectXではなくDirectDrawとSpriteRenderメソッドを使用した場合は異なりますか?DirectDrawとDirectXの違いがわからないので、100%考えるべきではありません。
ゲームは平均的なコンピューターで問題なく動作しますが、私のゲームと比較しているのは東方です。東方は私が試した中で最も弱いコンピューターで60FPSで実行されますが、私のゲームは36〜42FPSより速く実行されません。DirectXとC++に慣れていないので、自分が間違っていることを想像することはできません。
この件に関する支援は素晴らしいものですが、残念ながら私はしばらくの間、情報を追加したり質問に答えたりすることはありません。