1

私は C++ と SDL の初心者ですが、数年間ゲームを開発しています。

私が求めていたのは 2D ゲームだけだったので、単純さから SDL を選びましたが、満足していません。サーフェスを操作する関数は多くの電力を消費します。正直言って多すぎます。

SDL を使い始めたときは、30 FPS 程度でした。その後、サーフェスの最適化について知り、フレームレートが 60 に跳ね上がりました。また、ピクセル形式を 24 ビットから 32 ビットに切り替えると、フレームレートが 100 に改善されました。

私の意見では、ゲーム開発およびプログラミング言語用の他のライブラリと比較して、このパフォーマンスは弱いです。私はそれがまだ私のせいだと考え続け、すべてを正しく設定していれば、私の FPS は急上昇する可能性があります。

そのため、テストを続けて、コードを実行していない場合 (FPS インジケーターを除く) で 400 FPS が得られることを確認しました。ただし、SDL_FillRect() 関数で画面をクリアすると、100 に低下します。次に、描画されるすべてのスプライトのフレームレートがさらに低くなります。

本当にこんなに遅いのだろうか?

4

1 に答える 1

1

まず、100 FPS は遅くありません。とにかくモニターのリフレッシュ レートが原因で、ほとんどの場合、約 60 は関係ありません。

次に、どのような種類のサーフェスをブリッティングしていますか? 大規模な SDL ゲームを作成したとき、自分が持っていた特定のイメージが完全に消滅するのに永遠にかかっていることを知って本当に驚きました。しかし、ディザリングを削除するために品質を少しいじると、ほぼ瞬時にブリットが再び開始されました。SDL は内部でランレングス エンコーディングを使用しているため、ランを含む画像はより高速にブリットされると思います。

于 2012-06-30T20:53:21.723 に答える