纹理域


纹理域(TextureRegion)的定义非常简单,但是非常重要。在2D游戏开发中,纹理域远比纹理使用的频繁。我们知道纹理表示一张图片,而纹理域就是一张特殊的纹理,其内部封装着一个纹理实例。除此之外,纹理域还保存着一个矩形的信息,该矩形用于定义从封装的纹理中截取的区域。从上面的描述中,我们可以得出下面结论:TextureRegion表示从一张完整的纹理中截取的部分内容。下面列举了三种创建纹理域对象的方法:

TextureRegion region = new TextureRegion(Texture texture);
TextureRegion region = new TextureRegion(Texture texture, int x, int y, int width, int height);
TextureRegion region = new TextureRegion(Texture texture, int width, int height);

第一种方法表示创建一个尺寸与指定纹理相同的纹理域对象,这里说的尺寸就表示截取的矩形区域,单位为像素。第二种方法表示创建一个指定区域的纹理域对象,区域由xywidthheight参数定义的矩形决定。其中,xy表示矩形的起点坐标,该坐标以图片(纹理)左上角为原点,x轴水平向右,y轴竖直向下定义的坐标系为基准。widthheight分别表示矩形的宽和高。下面截图解释了纹理域的矩形区域是如何定义的:

第三种方法实际上是第二种方法的简化版。该方法省略了xy参数,默认以原点(0,0)为矩形的起点。LibGDX还提供了几种使用浮点数创建纹理域对象的方法,这里我没有列出来。使用浮点数定义的尺寸并不是指像素长度,而是真实尺寸的百分比,所以,浮点型的参数都必须位于(0,1)之间。

results matching ""

    No results matching ""