跳到主要内容

SpriteBatch

描述:

  使用单个图像,通过一次调用 love.graphics.draw() 绘制任意数量的相同图像副本。例如,这可用于以高性能绘制单个背景图像的重复副本。

type

类型: 函数。

描述:

  获取字符串形式的对象类型。

签名:

type: function(self: SpriteBatch): string

返回值:

返回类型描述
string字符串类型。

Of

类型: 函数。

描述:

  检查对象是否属于某种类型。如果对象的层次结构中具有指定名称的类型,则此函数将返回 true。

签名:

typeOf: function(self: SpriteBatch, type_name: string): boolean

参数:

参数名类型描述
type_namestring要检查的类型的名称。

返回值:

返回类型描述
boolean如果对象属于指定类型,则为 true,否则为 false。

release

类型: 函数。

描述:

  销毁对象的 Lua 引用。如果该对象未被任何其他 LÖVE 对象或线程引用,则该对象将被完全删除。 这个方法可以用来立即清理资源,而不需要等待Lua的垃圾收集器。

签名:

release: function(self: SpriteBatch): boolean

返回值:

返回类型描述
boolean如果对象已通过此调用释放,则为 true;如果先前已释放过该对象,则为 false。

add

类型: 函数。

描述:

  将精灵添加到批次中。精灵按照添加的顺序绘制。

签名:

add: function(self: SpriteBatch, x?: number, y?: number, angle?: number, scale_x?: number, scale_y?: number, origin_x?: number, origin_y?: number, shear_x?: number, shear_y?: number): integer

参数:

参数名类型描述
xnumber绘制对象的位置(x 轴)。
ynumber绘制对象的位置(y 轴)。
anglenumber方向(弧度)。 (默认值:0。)
scale_xnumber比例因子(x 轴)。 (默认值:1。)
scale_ynumber比例因子(y 轴)。 (默认值:sx。)
origin_xnumber原点偏移(x 轴)。 (默认值:0。)
origin_ynumber原点偏移(y 轴)。 (默认值:0。)
shear_xnumber剪切因子(x 轴)。 (默认值:0。)
shear_ynumber剪切因子(y 轴)。 (默认值:0。)

返回值:

返回类型描述
integerid — 添加的精灵的标识符。

add

类型: 函数。

描述:

  将精灵添加到批次中。精灵按照添加的顺序绘制。

签名:

add: function(self: SpriteBatch, quad: Quad, x?: number, y?: number, angle?: number, scale_x?: number, scale_y?: number, origin_x?: number, origin_y?: number, shear_x?: number, shear_y?: number): integer

参数:

参数名类型描述
quadQuad要添加的四边形。
xnumber绘制对象的位置(x 轴)。
ynumber绘制对象的位置(y 轴)。
anglenumber方向(弧度)。 (默认值:0。)
scale_xnumber比例因子(x 轴)。 (默认值:1。)
scale_ynumber比例因子(y 轴)。 (默认值:sx。)
origin_xnumber原点偏移(x 轴)。 (默认值:0。)
origin_ynumber原点偏移(y 轴)。 (默认值:0。)
shear_xnumber剪切因子(x 轴)。 (默认值:0。)
shear_ynumber剪切因子(y 轴)。 (默认值:0。)

返回值:

返回类型描述
integerid — 添加的精灵的标识符。

set

类型: 函数。

描述:

  更改批次中的精灵。这需要 SpriteBatch:add 或 SpriteBatch:addLayer 返回的精灵索引。

签名:

set: function(self: SpriteBatch, index: integer, x?: number, y?: number, angle?: number, scale_x?: number, scale_y?: number, origin_x?: number, origin_y?: number, shear_x?: number, shear_y?: number)

参数:

参数名类型描述
indexinteger将要更改的精灵的索引。
xnumber绘制对象的位置(x 轴)。
ynumber绘制对象的位置(y 轴)。
anglenumber方向(弧度)。 (默认值:0。)
scale_xnumber比例因子(x 轴)。 (默认值:1。)
scale_ynumber比例因子(y 轴)。 (默认值:sx。)
origin_xnumber原点偏移(x 轴)。 (默认值:0。)
origin_ynumber原点偏移(y 轴)。 (默认值:0。)
shear_xnumber剪切因子(x 轴)。 (默认值:0。)
shear_ynumber剪切因子(y 轴)。 (默认值:0。)

set

类型: 函数。

描述:

  更改批次中的精灵。这需要 SpriteBatch:add 或 SpriteBatch:addLayer 返回的精灵索引。

签名:

set: function(self: SpriteBatch, index: integer, quad: Quad, x?: number, y?: number, angle?: number, scale_x?: number, scale_y?: number, origin_x?: number, origin_y?: number, shear_x?: number, shear_y?: number)

参数:

参数名类型描述
indexinteger将要更改的精灵的索引。
quadQuad批次图像上使用的 Quad。
xnumber绘制对象的位置(x 轴)。
ynumber绘制对象的位置(y 轴)。
anglenumber方向(弧度)。 (默认值:0。)
scale_xnumber比例因子(x 轴)。 (默认值:1。)
scale_ynumber比例因子(y 轴)。 (默认值:sx。)
origin_xnumber原点偏移(x 轴)。 (默认值:0。)
origin_ynumber原点偏移(y 轴)。 (默认值:0。)
shear_xnumber剪切因子(x 轴)。 (默认值:0。)
shear_ynumber剪切因子(y 轴)。 (默认值:0。)

addLayer

类型: 函数。

描述:

  将精灵添加到使用表纹理创建的批次中。

签名:

addLayer: function(self: SpriteBatch, layer: integer, x?: number, y?: number, angle?: number, scale_x?: number, scale_y?: number, origin_x?: number, origin_y?: number, shear_x?: number, shear_y?: number): integer

参数:

参数名类型描述
layerinteger用于该精灵的图层索引。
xnumber绘制精灵的位置(x 轴)。 (默认值:0。)
ynumber绘制精灵的位置(y 轴)。 (默认值:0。)
anglenumber方向(弧度)。 (默认值:0。)
scale_xnumber比例因子(x 轴)。 (默认值:1。)
scale_ynumber比例因子(y 轴)。 (默认值:sx。)
origin_xnumber原点偏移(x 轴)。 (默认值:0。)
origin_ynumber原点偏移(y 轴)。 (默认值:0。)
shear_xnumber剪切因子(x 轴)。 (默认值:0。)
shear_ynumber剪切因子(y 轴)。 (默认值:0。)

返回值:

返回类型描述
integerspriteindex — 添加的精灵的索引,与 SpriteBatch:set 或 SpriteBatch:setLayer 一起使用。

addLayer

类型: 函数。

描述:

  将精灵添加到使用表纹理创建的批次中。

签名:

addLayer: function(self: SpriteBatch, layer: integer, quad: Quad, x?: number, y?: number, angle?: number, scale_x?: number, scale_y?: number, origin_x?: number, origin_y?: number, shear_x?: number, shear_y?: number): integer

参数:

参数名类型描述
layerinteger用于该精灵的图层索引。
quadQuad绘制精灵时使用的纹理层的分段。
xnumber绘制精灵的位置(x 轴)。 (默认值:0。)
ynumber绘制精灵的位置(y 轴)。 (默认值:0。)
anglenumber方向(弧度)。 (默认值:0。)
scale_xnumber比例因子(x 轴)。 (默认值:1。)
scale_ynumber比例因子(y 轴)。 (默认值:sx。)
origin_xnumber原点偏移(x 轴)。 (默认值:0。)
origin_ynumber原点偏移(y 轴)。 (默认值:0。)
shear_xnumber剪切因子(x 轴)。 (默认值:0。)
shear_ynumber剪切因子(y 轴)。 (默认值:0。)

返回值:

返回类型描述
integerspriteindex — 添加的精灵的索引,与 SpriteBatch:set 或 SpriteBatch:setLayer 一起使用。

setLayer

类型: 函数。

描述:

  在使用表纹理创建的批处理中更改先前使用 add 或 addLayer 添加的精灵。

签名:

setLayer: function(self: SpriteBatch, index: integer, layer: integer, x?: number, y?: number, angle?: number, scale_x?: number, scale_y?: number, origin_x?: number, origin_y?: number, shear_x?: number, shear_y?: number)

参数:

参数名类型描述
indexinteger要替换的现有精灵的索引。
layerinteger用于此精灵的阵列纹理中的图层索引。
xnumber绘制精灵的位置(x 轴)。 (默认值:0。)
ynumber绘制精灵的位置(y 轴)。 (默认值:0。)
anglenumber方向(弧度)。 (默认值:0。)
scale_xnumber比例因子(x 轴)。 (默认值:1。)
scale_ynumber比例因子(y 轴)。 (默认值:sx。)
origin_xnumber原点偏移(x 轴)。 (默认值:0。)
origin_ynumber原点偏移(y 轴)。 (默认值:0。)
shear_xnumber剪切因子(x 轴)。 (默认值:0。)
shear_ynumber剪切因子(y 轴)。 (默认值:0。)

setLayer

类型: 函数。

描述:

  在使用表纹理创建的批处理中更改先前使用 add 或 addLayer 添加的精灵。

签名:

setLayer: function(self: SpriteBatch, index: integer, layer: integer, quad: Quad, x?: number, y?: number, angle?: number, scale_x?: number, scale_y?: number, origin_x?: number, origin_y?: number, shear_x?: number, shear_y?: number)

参数:

参数名类型描述
indexinteger要替换的现有精灵的索引。
layerinteger用于此精灵的图层的索引。
quadQuad绘制精灵时使用的纹理层的分段。
xnumber绘制精灵的位置(x 轴)。 (默认值:0。)
ynumber绘制精灵的位置(y 轴)。 (默认值:0。)
anglenumber方向(弧度)。 (默认值:0。)
scale_xnumber比例因子(x 轴)。 (默认值:1。)
scale_ynumber比例因子(y 轴)。 (默认值:sx。)
origin_xnumber原点偏移(x 轴)。 (默认值:0。)
origin_ynumber原点偏移(y 轴)。 (默认值:0。)
shear_xnumber剪切因子(x 轴)。 (默认值:0。)
shear_ynumber剪切因子(y 轴)。 (默认值:0。)

clear

类型: 函数。

描述:

  从缓冲区中删除所有精灵。

签名:

clear: function(self: SpriteBatch)

flush

类型: 函数。

描述:

  立即将批次中所有新的和修改的精灵数据发送到显卡。 通常不需要调用此方法,因为 love.graphics.draw(spritebatch, ...) 会在需要时自动执行此操作,但显式使用 SpriteBatch:flush 可以更好地控制工作何时发生。 如果使用此方法,则通常不应在 love.graphics.draw(spritebatch, ...) 调用之间多次(最多)调用它。

签名:

flush: function(self: SpriteBatch)

setTexture

类型: 函数。

描述:

  设置绘制时用于批处理中的精灵的纹理(图像或画布)。

签名:

setTexture: function(self: SpriteBatch, texture: Image | Canvas)

参数:

参数名类型描述
textureImage or Canvas用于批处理中的精灵的新图像或画布。

getTexture

类型: 函数。

描述:

  获取SpriteBatch使用的纹理(Image或Canvas)。

签名:

getTexture: function(self: SpriteBatch): Image | Canvas

返回值:

返回类型描述
Image or CanvasSpriteBatch 使用的图像或画布。

setColor

类型: 函数。

描述:

  设置将用于下一个添加和设置操作的颜色。调用不带参数的函数将禁用 SpriteBatch 的所有每个精灵颜色。

-- 在11.0之前的版本中,颜色分量值的范围是0到255,而不是0到1。

-- 在版本 0.9.2 及更早版本中,如果任何精灵有自己的颜色,则使用 love.graphics.setColor 设置的全局颜色将无法在 SpriteBatch 上工作。

签名:

setColor: function(self: SpriteBatch)

setColor

类型: 函数。

描述:

  设置将用于下一个添加和设置操作的颜色。调用不带参数的函数将禁用 SpriteBatch 的所有每个精灵颜色。

-- 在11.0之前的版本中,颜色分量值的范围是0到255,而不是0到1。

-- 在版本 0.9.2 及更早版本中,如果任何精灵有自己的颜色,则使用 love.graphics.setColor 设置的全局颜色将无法在 SpriteBatch 上工作。

签名:

setColor: function(self: SpriteBatch, red: number, green: number, blue: number, alpha?: number)

参数:

参数名类型描述
rednumber红色的量。
greennumber绿色量。
bluenumber蓝色的量。
alphanumber阿尔法的数量。 (默认值:1。)

setColor

类型: 函数。

描述:

  设置将用于下一个添加和设置操作的颜色。调用不带参数的函数将禁用 SpriteBatch 的所有每个精灵颜色。

-- 在11.0之前的版本中,颜色分量值的范围是0到255,而不是0到1。

-- 在版本 0.9.2 及更早版本中,如果任何精灵有自己的颜色,则使用 love.graphics.setColor 设置的全局颜色将无法在 SpriteBatch 上工作。

签名:

setColor: function(self: SpriteBatch, color: Color)

参数:

参数名类型描述
colorColor红色的量。

getColor

类型: 函数。

描述:

  获取将用于下一个添加和设置操作的颜色。 如果没有使用 SpriteBatch:setColor 设置颜色或当前 SpriteBatch 颜色已被清除,则此方法将返回 nil。 在11.0之前的版本中,颜色分量值的范围是0到255,而不是0到1。

签名:

getColor: function(self: SpriteBatch): number, number, number, number

返回值:

返回类型描述
number红色分量 (0-1)。
number绿色分量 (0-1)。
number蓝色分量 (0-1)。
numberalpha 分量 (0-1)。

getCount

类型: 函数。

描述:

  获取SpriteBatch中当前精灵的数量。

签名:

getCount: function(self: SpriteBatch): integer

返回值:

返回类型描述
integer当前批次中的精灵数量。

getBufferSize

类型: 函数。

描述:

  获取 SpriteBatch 可以容纳的最大精灵数。

签名:

getBufferSize: function(self: SpriteBatch): integer

返回值:

返回类型描述
integer批次可以容纳的精灵的最大数量。

attachAttribute

类型: 函数。

描述:

  将网格中的每顶点属性附加到此 SpriteBatch 上,以供绘制时使用。它可以与 Shader 结合使用,以使用每个顶点或附加的每个精灵信息来增强 SpriteBatch,而不仅仅是每个精灵颜色。 SpriteBatch 中的每个精灵都有 4 个顶点,按以下顺序排列:左上、左下、右上、右下。 SpriteBatch:add 返回的索引(并由 SpriteBatch:set 使用)可用于通过公式 1 + 4 * ( id

  • 1 ) 确定特定精灵的第一个顶点。 重载说明:
  1. 如果使用自定义顶点格式创建,它将有 3 个顶点属性,分别为 VertexPosition、VertexTexCoord 和 VertexColor。如果具有这些名称的顶点属性附加到 SpriteBatch,它将分别覆盖 SpriteBatch 的精灵位置、纹理坐标和精灵颜色。 可以通过将自定义命名属性声明为属性 vec4 MyCustomAttributeName 在顶点着色器中访问它们;位于顶点着色器代码的顶层。该名称必须与网格体顶点格式和 SpriteBatch:attachAttribute 的名称参数中指定的名称相匹配。网格体必须至少有 4 * SpriteBatch:getBufferSize 顶点才能附加到 SpriteBatch。

签名:

attachAttribute: function(self: SpriteBatch, name: string, mesh: Mesh)

参数:

参数名类型描述
namestring要附加的顶点属性的名称。
meshMesh要从中获取顶点属性的网格体。

setDrawRange

类型: 函数。

描述:

  将 SpriteBatch 中绘制的精灵限制为总数的子集。

签名:

setDrawRange: function(self: SpriteBatch)

setDrawRange

类型: 函数。

描述:

  将 SpriteBatch 中绘制的精灵限制为总数的子集。

签名:

setDrawRange: function(self: SpriteBatch, start: integer, count: integer)
getDrawRange: function(self: SpriteBatch): number, number

参数:

参数名类型描述
startinteger要绘制的第一个精灵的索引。索引 1 对应于添加了 SpriteBatch:add 的第一个精灵。
countinteger要绘制的精灵数量。