Skip to content

A haxe/flixel library that makes loading and manipulating DAME levels easy.

License

Notifications You must be signed in to change notification settings

bradparks/LevelTools

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

#About

LevelTools is a haxe/flixel library that makes loading and manipulating flixel tilemaps easy (or at least easier). This library is written to work with Beeblerox' HaxeFlixel port. It provides utility classes for loading level data from DAME and Tiled Map Editor, as well as extension methods for iterating tiles in tilemaps.

#Targets

So far, the library has been tested with neko, native linux and windows and flash targets. However, it should support all platforms supported by HaxeFlixel.

#How to build/install

With haxelib:
haxelib install LevelTools

Building documentation, requires chxdoc:
make docs

Installing with haxelib locally:
make lib testlib

Otherwise, there is nothing to build, just include the library sources in your classpath.

#Demos

Demos can be found here.

#Features

  • Loading levels exported from DAME. Supports:
    • Tilemap layers
    • Sprite layers
    • Path layers (at this point, one path per layer, due to a problem with naming individual tiles)
    • Links between sprites
    • Properties for all objects except individual tiles
  • Loading levels exported from Tiled Map Editor, experimental, wouldn't recommend using it at this point.
  • Tilemap iterators
  • Convenience extension methods for iterating, filtering and replacing tiles

#Examples

Loading a DAME level and retrieving individual layers:


level = DameLevel.loadLevel(
	Assets.getText("assets/DameProject/Level_DemoLevel1.xml"), //XML file exported from DAME
	"assets/", //Assets directory
	true //Add the level to the state when loaded
	);
var mainTilemap = level.getTilemap("MainTilemap");
var spriteLayer = level.getLayer("SpriteLayer");

Iterating a tilemap with a for loop:


using org.ivar.leveltools.LevelTools; //imports the extension methods
/* ... */

for(tileId in mainTilemap.iterAll())
{
	trace(tileId);
}

Alternatively, using each* methods provides more information and easier modification of the tilemap:


private var flowerId = 5;
/* ... */
//Adds variation by randomly changing the first flower tile to different flowers.
mainTilemap.eachWithId(flowerId, function(data:TileData) {
	data.tilemap.setTile(data.x, data.y, FlowerId + Std.random(3));
});

About

A haxe/flixel library that makes loading and manipulating DAME levels easy.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published