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