Spritebatch.Draw(Texture2D texture、Vector2 position、Color color)を使用して、タイルを表す2Dスプライトを描画していると仮定します。はい、この場合、「Vector2の位置」は実際にウィンドウ空間の座標のペアです。ただし、OpenGLで行っていたのとまったく同じように、つまりポリゴンを作成し、ワールド/ビューマトリックスを使用して変換するなど、XNAで描画する方法は他にもたくさんあります。たとえば、MSDNのこのチュートリアルを参照してください。
そうは言っても、Spritebatchを使い続け、 Spritebatch.Draw(Texture2D texture、Rectangle destinationRectangle、Color color)を使用して「手動で」スケーリングを実行することができます。タイルは常に画面の幅の5%、画面の高さの6%を占める必要があるとすると、スケーリングは次のようになります。
var destinationRectangle = new Rectangle(
positionX,
positionY,
0.05 * screenWidth,
0.06 * screenHeight);
spritebatch.Draw(tileTexture, destinationRectangle, Color.White);
GraphicsDevice.Viewport.Width / Heightを使用して、画面の幅と高さを取得できます。
より一般的に言えば、座標をスケーリングすることを妨げるものは何もありませんが、シェーダーまたはCPUを介して計算を実行するか、カスタムを介して変換を実行するかにかかわらず、 MatrixクラスとVector2/3.Transformメソッドを使用して適切と思われます線形代数か何か。