SpriteBatch.Draw()方法中源矩形参数的用途是什么?
MSDN说: A rectangle that specifies (in texels) the source texels from a texture. Use null to draw the entire texture.
那是什么意思?
And*_*ell 15
这个想法sourceRectangle是通过将多个精灵安排到单个纹理中来实现性能优化和艺术家便利性.这被称为"纹理图集"或"雪碧表".
http://andrewrussell.net/content/2010/12/Sprite-Sheet-Example.png
我在这个答案中解释了为什么它是性能优化.基本上它可以减少纹理交换的数量.(因此,在我的插图中,如果您只绘制一次动画角色,则使用精灵表不会提高性能.)
它还可以让你实现俗气的2D特效,例如:精灵"擦":
http://andrewrussell.net/content/2010/12/Reveal-Animation-Example.png
A texel与纹理中的像素大致相同("纹理像素",如果可以的话).所以,当你画你的精灵,您指定的左上角精灵的内纹理,其宽度和高度上沿着.(就像在图像编辑器中选择它一样.)
如果传入null源矩形,XNA将采用覆盖整个纹理的源矩形.
将origin指定要Draw在从所述源矩形的左上角的纹理像素也被测量.