私はC++でSDLを使用して2Dプラットフォームゲームを作成しています。しかし、私は解像度にスケーリングを伴う大きな問題に遭遇しました。ゲームの全解像度が1920x1080になるように、ゲームのすべての画像が作成されているように、ゲームをフルHDで美しく見せてください。しかし、誰かが小さい解像度を使用している場合はゲームを正しい解像度に縮小し、大きい解像度を使用している場合は拡大するようにします。SDLで解像度に合わせる方法は?
問題は効率的な方法を見つけることができなかったことです。すべての画像をプレスケールするためにSDL_gfxライブラリを使用して始めましたが、これは多くのオフラインを作成するため動作しません1つのピクセルが失われていた1つのエラー。そして、私のアニメーションは、アニメーションが再生されるときに1つの画像に含まれるので、アニメーションは各フレームの上下にわずかに移動します。
次に、私はいくつか見て回った後、スケーリングを処理するためにopenglを使ってみました。現在、私のプログラムはすべての画像を1920x1080のSDL_Surfaceに描画します。次に、このサーフェスをOpenGLテクスチャに変換し、このテクスチャを画面解像度に合わせてスケーリングし、次にテクスチャを描画します。これは視覚的にはうまく動作しますが、問題は効率的ではないことです。現在、私は18 :(
の最大のFPSを取得していますので、私の質問は、誰もが画面の解像度にSDLディスプレイを拡張するための効率的な方法を知っているんですか?
あなたはOpenGLを使用しているときに、あなたの描画、変換、スケーリングを実行していますか? – silent
また、gamedevフォーラムのメンバーにお尋ねください、彼らはあなたを助けることができるはずです。 – silent
はい、私はそれがとても非効率な理由です。しかし、現在私はそれが動作する他の方法を見つけることができません。 OKを実行します。 –