大きな画像 (1500x1000) をテクスチャに読み込んでいます。私の graphics.PreferredBackBufferWidth/Height は 800x600 です。drawRectangle を大きな画像と同じサイズに設定しています。
マウスが画面の端に向かって移動すると、sourceRectangle の x 座標と y 座標を変更して、マップをスクロールします。これはすべてうまくいっているようですが、私の写真は歪んでいます。sourceRectangle を削除して通常の drawRectangle を使用すると、歪んでいません。何か足りないものはありますか?
SpriteBatch spriteBatch;
Texture2D pic;
Rectangle mapRectangle;
Rectangle mapSourceRectangle;
public Game1()
: base()
{
graphics = new GraphicsDeviceManager(this);
Content.RootDirectory = "Content";
graphics.PreferredBackBufferWidth = 800;
graphics.PreferredBackBufferHeight = 600;
IsMouseVisible = true;
}
...
pic = Content.Load<Texture2D>("map");
mapRectangle = new Rectangle(0, 0, pic.Width, pic.Height);
mapSourceRectangle = new Rectangle(0, 0, graphics.PreferredBackBufferWidth, graphics.PreferredBackBufferHeight);
そして最後に私がそれを描くとき。
spriteBatch.Draw(pic, mapRectangle, mapSourceRectangle, Color.White);