Skip to content
Snippets Groups Projects
README.md 1.85 KiB
Newer Older
Matthew Hall's avatar
Matthew Hall committed
# rs-tiled

Axel Magnuson's avatar
Axel Magnuson committed
![Travis](https://travis-ci.org/mattyhall/rs-tiled.svg?branch=master)
Matthew Hall's avatar
Matthew Hall committed

Matthew Hall's avatar
Matthew Hall committed
Read maps from the [Tiled Map Editor](http://www.mapeditor.org/) into rust for use in video games. It is game engine agnostic and pretty barebones at the moment. Documentation is available [on rust-ci](http://rust-ci.org/mattyhall/rs-tiled/doc/tiled/).

Matthew Hall's avatar
Matthew Hall committed
Code contributions are welcome as are bug reports, documentation, suggestions and criticism.


### How to use with Cargo
Whilst Rust < 1.0 the master branch of this repo will track rust nightly as closely as possible. This means that this library has to build its dependencies from git, as often the version of rust-xml on [crates.io](http://crates.io) does not compile with the latest version of rustc.

The long and the short of it being the recommended way of using rs-tiled is adding this to your ``Cargo.toml``:

```
[dependencies.tiled]
Matthew Hall's avatar
Matthew Hall committed
```

[There is a package on crates.io](https://crates.io/crates/tiled) but it is unlikely to work until the language stabalises.
Matthew Hall's avatar
Matthew Hall committed
### Example

```rust
extern crate serialize;
extern crate tiled;

Kevin Balz's avatar
Kevin Balz committed
use std::old_io::{File, BufferedReader};
Matthew Hall's avatar
Matthew Hall committed
use tiled::parse;

fn main() {
    let file = File::open(&Path::new("assets/tiled_base64_zlib.tmx")).unwrap();
    println!("Opened file");
    let reader = BufferedReader::new(file);
    let map = parse(reader).unwrap();
Kevin Balz's avatar
Kevin Balz committed
    println!("{:?}", map);
    println!("{:?}", map.get_tileset_by_gid(22));
Matthew Hall's avatar
Matthew Hall committed
### Things missing
There are a few things missing at the moment:

  * Terrain
  * Loading files that aren't base64 encoded and compressed with zlib
  * Tile flipping
  * Image layers
  * A nice API. At the moment you can access attributes and properties, find tilesets by GID and loop through the tiles. This leaves a user of the library with a bit to do.
Matthew Hall's avatar
Matthew Hall committed

Matthew Hall's avatar
Matthew Hall committed
### Licences
Matthew Hall's avatar
Matthew Hall committed
assets/tilesheet.png by Buch (http://blog-buch.rhcloud.com/)

Matthew Hall's avatar
Matthew Hall committed
Licenced under MIT