allegro_tiled is an Allegro 5 module that adds support for parsing and using TMX map files. This means that Tiled, as well as any other program supporting the same map format, can be used to create and edit game worlds while the complexity of parsing and drawing them is completely taken care of:
ALLEGRO_MAP *map = al_open_map("data/maps", "level1.tmx"); al_draw_map(map, 0, 0, 0); // (map, dx, dy, flags)
Additional methods are provided to draw one map layer at a time and/or draw only a particular section. Layers, tilesets, tiles, and objects are all given types, with methods that make them easy to access and use.
Currently, the following is supported:
- Orthogonal maps.
- Base64 encoding with gzip, zlib, or no compression.
- XML and CSV encoding. (though honestly, why would you?)
- Tile "flipped" flags, both vertically and horizontally.
The following is not yet supported:
- Isometric maps.
Make sure the following dependencies are installed:
Make sure the following dependencies are installed using Homebrew:
Make sure the following dependencies are installed. Since there's no package manager, each one will need to be downloaded separately, and a
*_HOME environment variable will need to be set to its location on your system; alternatively you can use
pkg-config on Windows since it will check for that first, but unless you already have it installed, it's easier to use the following approach. Each dependency links to the download page and specifies which environment variable it expects to be set, excluding CMake since it's the executable used to process the build.
- Allegro 5 (
ALLEGRO_HOME; also need to set
ALLEGRO_VERSIONto the installed version)
- libxml2 (
- zlib (
- GLib (
GLIB_HOME) (not GTK+, just the GLib individual dev package)
In addition to this, you'll need to have a C/C++ compiler installed. I had issues getting it to build with Visual Studio (the Visual Studio compiler doesn't play nicely with GLib in particular), but it seems to work fine with MinGW or MSYS.
If you wish to disable building the example, simply run cmake with
-DWANT_EXAMPLE=Off before building the library.
CMake will configure the build for a static library by default. If you would like to build a shared library instead, add
-DBUILD_SHARED_LIBS to the cmake command below.
Linux / OSX
Create a new directory called
build, cd into it, then simply run
cmake .. followed by
make to compile it, and optionally
sudo make install to handle installation. To run the example, cd to the examples folder and type
LD_LIBRARY_PATH=.. ./example. Use the arrow keys to scroll and Space to reload the map file.
Same steps as Linux / OSX, except you'll need to specify that the generator be either MinGW or MSYS, whichever you have installed, so the command becomes one of
cmake -G "MinGW Makefiles" .. or
cmake -G "MSYS Makefiles" ...
On Other Platorms:
Theoretically it should build fine on any platform for which all of the dependencies are available (either installable from source or a pre-compiled binary) and has support from CMake. Bug reports and pull requests for other platforms are welcome.