Draw-method 使用的 Rectangles 定义了应该在 rendertarget 的哪个部分(通常是屏幕)绘制 Texture2D 的哪个部分。
例如,这就是我们使用图块集的方式;
class Tile
{
int Index;
Vector2 Position;
}
Texture2D tileset = Content.Load<Texture2D>("sometiles"); //128x128 of 32x32-sized tiles
Rectangle source = new Rectangle(0,0,32,32); //We set the dimensions here.
Rectangle destination = new Rectangle(0,0,32,32); //We set the dimensions here.
List<Tile> myLevel = LoadLevel("level1");
//the tileset is 4x4 tiles
in Draw:
spriteBatch.Begin();
foreach (var tile in myLevel)
{
source.Y = (int)((tile.Index / 4) * 32);
source.X = (tile.Index - source.Y) * 32;
destination.X = (int)tile.Position.X;
destination.Y = (int)tile.Position.Y;
spriteBatch.Draw(tileset, source, destination, Color.White);
}
spriteBatch.End();
我可能混淆了在绘制方法中使用矩形的顺序,因为我在工作时正在做这件事。
编辑; 仅使用 Source Rectangle 可让您仅在屏幕位置上绘制纹理的一部分,而仅使用 destination 可让您缩放纹理以适合您想要的任何位置。