Windows Phone 7 用の XNA を試してみることにしました。最初のゲームでは、画像を取得して正方形のスプライトに分割する必要があるため、画像は本質的にスプライト シートになります。元の画像は画面に対して大きすぎるか小さすぎる可能性が高いため、次の手順を実行して、画面に収まるようにスケールを適用する方法を見つけましたが、ギャップは表示されません (したがって、1 つの寸法が画面)。
Texture = content.Load<Texture2D>(assetName);
var width = Texture.Bounds.Width;
var height = Texture.Bounds.Height;
var widthDifference = width - screenWidth;
var heightDifference = height - screenHeight;
if (widthDifference < 0 || heightDifference < 0)
{
if (widthDifference < heightDifference)
Scale = (float) screenWidth/width;
else
Scale = (float) screenHeight/height;
}
else
{
if (widthDifference > heightDifference)
Scale = (float) screenWidth/width;
else
Scale = (float) screenHeight/height;
}
if (Scale < 0)
Scale = Scale*-1;
しかし次に、この画像からスプライトを生成して、画面をグリッドできれいに埋める必要があります。私の主な質問は、各スプライトで描画メソッドを呼び出すときに、スケーリングが元のスプライト シートに適用されるのか、それともスプライト シートからテクスチャを取得した後のスプライト自体に適用されるのかということだと思います。
後者の場合、個々のスプライトを作成する前に、スプライト シートをどのようにスケーリングするのが最善かについて少し混乱しています。実際には、最初に画像のサイズを画面のサイズに正確に一致するように変更して、作業を楽にすることになるかもしれませんが、これは少し面倒です。
どんな提案でも大歓迎です!