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.

Screenshot of tile-based scrolling with a simple map generator.

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