0

解像度を変更して、ゲーム全体を新しい解像度に引き伸ばすにはどうすればよいですか? ゲームに基本解像度を持たせたいのですが、それを変更すると、その新しい解像度に引き伸ばされます。同様の質問をいくつか見ましたが、すべての回答で、プレゼンテーション パラメータを変更する必要があることが示唆されました。これを行うと、画面の解像度が変更されますが、他のすべてのオブジェクトは同じサイズのままで、間違った位置に描画されます。

LPD3DXSPRITE オブジェクトを使用して、画面にテクスチャ、いくつかの DirectX テキスト、および次のように定義された頂点を描画します。

#define D3DFVF_VERTEX (D3DFVF_XYZRHW | D3DFVF_DIFFUSE)

D3DXSPRITE_OBJECTSPACE を sprite->Begin() に配置して、射影、ビュー、およびワールド マトリックスを操作しようとしましたが、成功しませんでした。

この方法が可能かどうか、またどのようにすればよいか教えてもらえますか? また、サーフェスにレンダリングしてからサーフェスを引き伸ばすことを提案する別の方法についても読みましたが、それを実装する方法がわかりません。DirectX初心者です。2番目の方法をグーグルで検索しましたが、説明している人を見つけることができず、スプライトからサーフェスに描画できるとは思いません。

編集:

CreateRenderTarget、SetRenderTarget、および StretchRect メソッドを使用してこれを行うことができました。最初にサーフェスに出力し、次にバック バッファーでストレッチしました。

4

2 に答える 2

0

CreateRenderTarget、SetRenderTarget、StretchRectメソッドを使用してこれを行うことができ、最初にサーフェスに印刷してから、バックバッファーでストレッチしました。

于 2013-03-20T16:57:45.333 に答える
0

これは、物理ピクセルの代わりに DIP (デバイスに依存しないピクセルまたはデバイスに依存しない単位) を使用して座標を測定することで実現できる場合があります。また、解像度を変更したときにオペレーティング システムが UI をスケーリングしないように、ゲームを DPI 対応としてマークする必要があります。DPI の詳細については、この記事を参照してください。

于 2013-03-20T04:45:50.453 に答える