Skip to content
This repository

Imports Tiled maps into Lua for the LÖVE2d game engine

branch: master

Merge pull request #38 from cheezgi/patch-1

Update Tile.lua
latest commit 0cc155d144
Kadoba authored
Octocat-spinner-32 external 0.12.0 October 18, 2012
Octocat-spinner-32 Base64.lua 0.12.0 October 18, 2012
Octocat-spinner-32 Grid.lua fixed spacing October 11, 2012
Octocat-spinner-32 Loader.lua fixed external tileset updirectory January 17, 2013
Octocat-spinner-32 Map.lua fixed map factory functions December 10, 2012
Octocat-spinner-32 Object.lua Fixed tile objects December 11, 2012
Octocat-spinner-32 ObjectLayer.lua 0.12.0 October 18, 2012
Octocat-spinner-32 README.md 0.12.0 October 18, 2012
Octocat-spinner-32 Tile.lua Update Tile.lua February 16, 2014
Octocat-spinner-32 TileLayer.lua Fixed for 0.9.0 November 09, 2013
Octocat-spinner-32 TileSet.lua 0.12.0 October 18, 2012
Octocat-spinner-32 VERSION.txt 0.12.1 October 30, 2012
Octocat-spinner-32 init.lua fixed spacing October 11, 2012
README.md

Advanced Tiled Loader

Advanced Tiled Loader (ATL) loads and renders Tiled maps inside of the Löve2D game framework.

Supported features include:

  • Multiple Layers
  • All object types (regular, polygon, and tile)
  • Properties
  • Transparent colors
  • Margins and spacing
  • External tilesets
  • zlib/gzip compression
  • Isometric maps
  • Flipped and rotated tiles
  • Saving loaded maps

Example files can be found at https://github.com/Kadoba/Advanced-Tiled-Loader-Examples


Quick Example

-- Gets the loader
loader = require("AdvTiledLoader/loader.lua")

 -- Path to the tmx files. The file structure must be similar to how they are saved in Tiled
loader.path = "maps/"

 -- Loads the map file and returns it
map = loader.load("desert.tmx")

-- Draws the map
map:draw()

-- Limits the drawing range of the map. Important for performance
map:setDrawRange(0,0,love.graphics.getWidth(), love.graphics.getHeight())

-- Automatically sets the drawing range to the size of the screen.
map:autoDrawRange(tx, ty, scale, padding)

-- Accessing individual layers
map.layers["layer name"]

-- A shortcut for accessing specific layers
map("layer name")

-- Finding a specific tile
map.layers["layer name"]:get(5,5)

-- A shortcut for finding a specific tile
map("layer name")(5,5)

-- Iterating over all tiles in a layer
for x, y, tile in map("layer name"):iterate() do
   print( string.format("Tile at (%d,%d) has an id of %d", x, y, tile.id) )
end

-- Iterating over all objects in a layer
for i, obj in pairs( map("object layer").objects ) do
    print( "Hi, my name is " .. obj.name )
end

-- Find all objects of a specific type in all layers
for _, layer in pairs(map.layers) do
   if layer.class == "ObjectLayer" then
        for _, obj in pairs(player.objects) do
            if obj.type == "enemy" then print(obj.name) end
        end
   end
end

-- draw the tile with the id 4 at (100,100)
map.tiles[4]:draw(100,100)

-- Access the tile's properties set by Tiled
map.tiles[4].properties

-- Turns off drawing of non-tiled objects.
map.drawObjects = false


Something went wrong with that request. Please try again.