Tutorial:Efficient Tile-based Scrolling (Português)
Este tutorial introduz a clase SpriteBatch para um rolamento de mapa mais eficiente. Para entender o sistema de rolamento de mapa básico, veja Tutorial:Tile-based_Scrolling.
Quads e SpriteBatch
O método love.graphics.drawq desenha uma porção de imagens especificadas pelo Quad. Se o quad é proveniente de diferentes partes de um mesmo mapa, nós podemos fazer o com que o sistema se torne mais eficiente usando um SpriteBatch, não alterando o quad a cada quadro.
Quando criamos um SpriteBatch, devemos especificar a imagem de onde pegaremos os quads ("tiles") e o número máximo de quads visíveis na tela.
tilesetBatch = love.graphics.newSpriteBatch(tilesetImage, tilesDisplayWidth * tilesDisplayHeight)
Inicialização do mapa
Inicializamos o mapa com o script a seguir. Veja o Tile-based Scrolling Tutorial para mais detalhes.
function love.load()
mapWidth = 60
mapHeight = 40
map = {}
for x=1,mapWidth do
map[x] = {}
for y=1,mapHeight do
map[x][y] = math.random(0,3)
end
end
mapX = 1
mapY = 1
tilesDisplayWidth = 26
tilesDisplayHeight = 20
zoomX = 1
zoomY = 1
end