SpriteBatch.Draw() 方法中源矩形参数的用途是什么?
MSDN 说:A rectangle that specifies (in texels) the source texels from a texture. Use null to draw the entire texture.
这意味着什么?
的想法sourceRectangle
是允许您通过安排多个来实现性能优化和艺术家便利sprites成一个单一的texture。这称为“纹理图集”或“精灵表”。
(source: andrewrussell.net http://andrewrussell.net/content/2010/12/Sprite-Sheet-Example.png)
我在这个答案中解释了为什么这是性能优化 https://gamedev.stackexchange.com/questions/9277/optimizing-an-xna-2d-game/9289#9289。基本上它可以让你减少纹理交换的数量。 (因此,就我的插图而言,如果您只绘制一次动画角色,则使用精灵表不会提高性能。)
它还可以让您实现俗气的 2D 特效,例如在以下位置中“擦除”精灵:
(source: andrewrussell.net http://andrewrussell.net/content/2010/12/Reveal-Animation-Example.png)
A texel
或多或少与纹理中的像素相同(如果您愿意,可以称为“纹理像素”)。因此,当您绘制精灵时,您指定了精灵的左上角sprite内texture,以及它的宽度和高度。 (与在图像编辑器中选择它相同。)
如果你通过null
对于源矩形,XNA 将假定源矩形覆盖整个纹理。
The origin
你指定Draw
也从源矩形的左上角开始以纹素为单位进行测量。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)