Difference between revisions of "love.graphics.newSpriteBatch (Français)"
(Created page with "Crée un nouvel objet SpriteBatch (macro de sprites). {{newobjectnotice (Français)}} == Fonction == === Synopsis === <source lang="lua"> spriteBat...") |
(→Exemples) |
||
Line 87: | Line 87: | ||
local windowWidth, windowHeight = love.graphics.getDimensions() | local windowWidth, windowHeight = love.graphics.getDimensions() | ||
− | -- | + | -- Le protagoniste se déplace suivant un cercle. |
local angle = .4 * love.timer.getTime() | local angle = .4 * love.timer.getTime() | ||
protagonist.x = windowWidth/2 + .3*windowWidth * math.cos(angle) | protagonist.x = windowWidth/2 + .3*windowWidth * math.cos(angle) |
Latest revision as of 09:14, 22 August 2021
Crée un nouvel objet SpriteBatch (macro de sprites).
Cette fonction peut être lente si elle est appelée de façon répétée, comme depuis love.update ou love.draw. Si vous devez utiliser souvent une ressource spécifique, créez la une seule fois, et conservez la quelque part, elle peut être réutilisée ! |
Contents
Fonction
Synopsis
spriteBatch = love.graphics.newSpriteBatch( image, maxsprites )
Arguments
Image (Français) image
- Image à utiliser pour les sprites.
number (Français) maxsprites (1000)
- Nombre maximum de sprites que le SpriteBatch peut contenir à tout moment. Depuis la version 11.0 de LÖVE, les sprites ajoutés au delà de ce nombre feront automatiquement grossir le spritebatch.
Retourne
SpriteBatch (Français) spriteBatch
- Le nouveau SpriteBatch.
Fonction
Disponible depuis LÖVE 0.8.0 |
Ce-tte variant n'est pas supporté-e par des versions plus anciennes. |
Synopsis
spriteBatch = love.graphics.newSpriteBatch( image, maxsprites, usage )
Arguments
Image (Français) image
- Image à utiliser pour les sprites.
number (Français) maxsprites (1000)
- Nombre maximum de sprites que le SpriteBatch peut contenir à tout moment. Depuis la version 11.0 de LÖVE, les sprites ajoutés au delà de ce nombre feront automatiquement grossir le spritebatch.
SpriteBatchUsage (Français) usage ("dynamic")
- Utilisation attendue du SpriteBatch. Le mode d'utilisation spécifié affecte l'utilisation mémoire et les performances du SpriteBatch.
Retourne
SpriteBatch spriteBatch
- Le nouveau SpriteBatch.
Fonction
Disponible depuis LÖVE 0.9.1 |
Ce-tte variant n'est pas supporté-e par des versions plus anciennes. |
Synopsis
spriteBatch = love.graphics.newSpriteBatch( texture, maxsprites, usage )
Arguments
Texture (Français) texture
- Image ou Canvas à utiliser pour les sprites.
number (Français) maxsprites (1000)
- Nombre maximum de sprites que le SpriteBatch peut contenir à tout moment. Depuis la version 11.0 de LÖVE, les sprites ajoutés au delà de ce nombre feront automatiquement grossir le spritebatch.
SpriteBatchUsage (Français) usage ("dynamic")
- Utilisation attendue du SpriteBatch. Le mode d'utilisation spécifié affecte l'utilisation mémoire et les performances du SpriteBatch.
Retourne
SpriteBatch spriteBatch
- Le nouveau SpriteBatch.
Exemples
Cet exemple utilise cette image pour tous les graphismes :
local entities = {}
local spriteBatch, player
function love.load()
local image = love.graphics.newImage("spriteBatchExample.png")
spriteBatch = love.graphics.newSpriteBatch(image)
local quadPlayer = love.graphics.newQuad(0, 0, 32, 32, image:getDimensions())
local quadTree = love.graphics.newQuad(32, 0, 32, 32, image:getDimensions())
local quadSign = love.graphics.newQuad(0, 32, 32, 32, image:getDimensions())
local quadDogHouse = love.graphics.newQuad(32, 32, 32, 32, image:getDimensions())
local windowWidth, windowHeight = love.graphics.getDimensions()
love.graphics.setBackgroundColor(.05, .15, .05)
-- Déploie de nombreuses choses au hasard sur une grille quelconque.
for baseY = 0, windowHeight, 30 do
for baseX = 0, windowWidth, 40 do
local quad = (
love.math.random() < .10 and quadSign or
love.math.random() < .03 and quadDogHouse or
quadTree
)
table.insert(entities, {
quad = quad,
x = baseX + math.random(-12, 12),
y = baseY + math.random(-8, 8 ),
serial = #entities,
})
end
end
-- Déploie un protagoniste.
protagonist = {quad=quadPlayer, x=0, y=0, serial=#entities} -- We set the position in love.update().
table.insert(entities, protagonist)
end
function love.update(dt)
local windowWidth, windowHeight = love.graphics.getDimensions()
-- Le protagoniste se déplace suivant un cercle.
local angle = .4 * love.timer.getTime()
protagonist.x = windowWidth/2 + .3*windowWidth * math.cos(angle)
protagonist.y = windowHeight/2 + .3*windowHeight * math.sin(angle)
end
function love.draw()
-- Trie les entités par leur position Y.
table.sort(entities, function(entity1, entity2)
if entity1.y ~= entity2.y then
return entity1.y < entity2.y
end
return entity1.serial < entity2.serial -- Si Y est le même, utilise le numéro de série comme seconde possibilité.
end)
-- Ajoute des entités dans la macro de sprite pour le tracé.
spriteBatch:clear()
for _, entity in ipairs(entities) do
spriteBatch:add(entity.quad, math.floor(entity.x), math.floor(entity.y))
end
-- Finalement, trace la macro de sprite à l'écran.
love.graphics.draw(spriteBatch)
end
Voir également
Autres langues
Dansk –
Deutsch –
English –
Español –
Français –
Indonesia –
Italiano –
Lietuviškai –
Magyar –
Nederlands –
Polski –
Português –
Română –
Slovenský –
Suomi –
Svenska –
Türkçe –
Česky –
Ελληνικά –
Български –
Русский –
Српски –
Українська –
עברית –
ไทย –
日本語 –
正體中文 –
简体中文 –
Tiếng Việt –
한국어
More info