SpriteBatch:addLayer (Français)

Disponible depuis LÖVE 11.0
Ce-tte function n'est pas supporté-e par des versions plus anciennes.

Ajoute un sprite au batch créé à l'aide d'un Tableau de texture.

Fonction

Ajoute un calque du tableau de texture du SpriteBatch.

Synopsis

spriteindex = SpriteBatch:addLayer( layerindex, x, y, r, sx, sy, ox, oy, kx, ky )

Arguments

number (Français) layerindex
Index du calque à utiliser pour ce sprite.
number (Français) x
Position à laquelle tracer l'objet sur l'axe des x.
number (Français) y
Position à laquelle tracer l'objet sur l'axe des y.
number (Français) r (0)
Orientation (radians).
number (Français) sx (1)
Facteur d'échelle (axe des x).
number (Français) sy (sx)
Facteur d'échelle (axe des y).
number (Français) ox (0)
Déplacement de l'origine (axe des x).
number (Français) oy (0)
Déplacement de l'origine (axe des y).
number (Français) kx (0)
Facteur de transvection (axe des x).
number (Français) ky (0)
Facteur de transvection (axe des y).

Retourne

number spriteindex
Index du sprite ajouté, pour son utilisation ultérieure avec SpriteBatch:set ou SpriteBatch:setLayer.

Fonction

Ajoute un calque du tableau de texture du SpriteBatch en utilisant le Quad spécifié.

Synopsis

spriteindex = SpriteBatch:addLayer( layerindex, quad, x, y, r, sx, sy, ox, oy, kx, ky )

Arguments

number (Français) layerindex
Index du calque à utiliser pour ce sprite.
Quad (Français) quad
Sous-section du calque de texture à utiliser lors du tracé du sprite.
number (Français) x
Position à laquelle tracer l'objet sur l'axe des x.
number (Français) y
Position à laquelle tracer l'objet sur l'axe des y.
number (Français) r (0)
Orientation (radians).
number (Français) sx (1)
Facteur d'échelle (axe des x).
number (Français) sy (sx)
Facteur d'échelle (axe des y).
number (Français) ox (0)
Déplacement de l'origine (axe des x).
number (Français) oy (0)
Déplacement de l'origine (axe des y).
number (Français) kx (0)
Facteur de transvection (axe des x).
number (Français) ky (0)
Facteur de transvection (axe des y).

Retourne

number spriteindex
Index du sprite ajouté, à utiliser avec SpriteBatch:set ou SpriteBatch:setLayer.

Notes

L'index de calque spécifié écrase tout index de calque définit dans le Quad via Quad:setLayer.

Fonction

Ajoute un calque du tableau de texture du SpriteBatch en utilisant Transform (la transformation) spécifiée.

Synopsis

spriteindex = SpriteBatch:addLayer( layerindex, transform )

Arguments

number (Français) layerindex
Index du calque à utiliser pour ce sprite.
Transform (Français) transform
Objet transformation.

Retourne

number (Français) spriteindex
Index du sprite ajouté, pour son utilisation avec SpriteBatch:set ou SpriteBatch:setLayer.

Fonction

Ajoute un calque au tableau de texture du SpriteBatch en utilisant les Quad et Transform spécifiés.

Synopsis

spriteindex = SpriteBatch:addLayer( layerindex, quad, transform )

Arguments

number (Français) layerindex
Index du calque à utiliser pour ce sprite.
Quad (Français) quad
Sous-section du calque de texture à utiliser lors du tracé du sprite.
Transform (Français) transform
Objet transformation.

Retourne

number (Français) spriteindex
Index du sprite ajouté, pour son utilisation avec SpriteBatch:set ou SpriteBatch:setLayer).

Notes

L'index de calque spécifié écrase tout index de calque définit dans le Quad via Quad:setLayer.

Notes

Afin d'utiliser un tableau de texture ou autre types de texture non-2D comme texture principale dans un Shader (ombrage) personnalisé, la variante effect() vide doit être utilisée dans l'ombrage de pixel, et MainTex (texture principale) doit être déclarée comme une ArrayImage ou un sampler2DArray de cette façon : uniform ArrayImage MainTex;.

Exemples

Trace plusieurs calques d'une image en tableau dans un SpriteBatch

function love.load()
    local sprites = {"sprite1.png", "sprite2.png"}
    image = love.graphics.newArrayImage(sprites)

    batch = love.graphics.newSpriteBatch(image)
    batch:addLayer(1, 50, 50)
    batch:addLayer(2, 250, 50)
end

function love.draw()
    love.graphics.draw(batch)
end

Utilise un ombrage personnalisé

shader = love.graphics.newShader[[
uniform ArrayImage MainTex;

void effect() {
    // Un Texel utilise une troisième composante des coordonnées de texture comme index de calque, Lorsque une
    // table de texture (comme ArrayImage) lui est passé.
    // LÖVE configure les coordonnées de texture afin qu'elles contienne l'index de calque spécifié dans
    // love.graphics.drawLayer, lors du rendu d'une table de texture
    love_PixelColor = Texel(MainTex, VaryingTexCoord.xyz) * VaryingColor;
}
]]

function love.load()
    local sprites = {"sprite1.png", "sprite2.png"}
    image = love.graphics.newArrayImage(sprites)

    batch = love.graphics.newSpriteBatch(image)
    batch:addLayer(1, 50, 50)
    batch:addLayer(2, 250, 50)
end

function love.draw()
    love.graphics.setShader(shader)
    love.graphics.draw(batch)
end

Voir également


Autres langues