0

XNAで2Dmatch3ゲームを開発しています。コアロジックとアニメーションが実行されます。RenderTarget2Dを使用してボード全体を描画します。ボードには8行8列で、64x64のテクスチャ(タイル)があり、クリックして移動できます。マウスの交点をキャプチャするには、タイルごとにSourceRectanglesを使用します。もちろん、SourceRectanglesのサイズはテクスチャと同じ64x64です。

RenderTarget2Dを使用してボード全体を縮小し、さまざまなモニターの解像度とアスペクトをサポートしたいと思います。まず、RenderTarget2Dですべてのタイルを描画します。次に、float係数を使用してRenderTarget2Dをスケールダウンします。最後に、画面にRenderTarget2Dを描画します。その結果、ボード全体が適切に縮小されます(たとえば、すべてのテクスチャが64x64から50x50に縮小されます)が、SourceRectaglesは縮小されず、64x64のままであり、マウスの交差は適切なタイルにキャプチャされません。

RenderTarget2Dをスケーリングしてもこれが処理されないのはなぜですか?どうすればこの問題を解決できますか?

4

1 に答える 1

0

この問題には別の方法でアプローチする必要があります。テクスチャのソース長方形はまさにそれです—ボタン長方形としてそれらを使用しようとしないでください。そうしないと、このような問題が発生します。

代わりに、別Rectangle hitboxRectangleのを使用します。これは、最初はソースの長方形と同じサイズですが、ゲームウィンドウに合わせて拡大縮小され、交差をチェックします。

于 2013-01-27T17:00:11.027 に答える