8 releases
0.3.7 | Aug 21, 2024 |
---|---|
0.3.6 | Aug 14, 2024 |
0.3.2 |
|
0.1.0 | Jul 13, 2024 |
#126 in Game dev
572 downloads per month
68KB
1.5K
SLoC
bevy_ecs_tiled
Plugin for working with 2D tilemaps created with the Tiled map editor using the bevy_ecs_tilemap
crate to perform rendering so each tile is represented by a Bevy entity.
Layers are children of the tilemap entity, tiles and objects are children of layers. Visibility is inherited: map -> layer -> tile
Features
- Orthogonal, isometric and hexagonal maps
- Finite and infinite maps
- Embedded and separate tileset
- Easily spawn / despawn maps
- Animated tiles
- Rapier and Avian colliders added from tilesets and object layers (
rapier
oravian
feature flag) - Tiled custom properties mapped to Bevy components (
user_properties
feature flag)
Getting started
[dependencies]
bevy = "0.14"
bevy_ecs_tiled = "0.3"
bevy_ecs_tilemap = "0.14"
Then add the plugin to your app:
use bevy::prelude::*;
use bevy_ecs_tiled::prelude::*;
use bevy_ecs_tilemap::prelude::*;
fn main() {
App::new()
.add_plugins(DefaultPlugins)
.add_plugins(TilemapPlugin)
.add_plugins(TiledMapPlugin)
.add_systems(Startup, startup)
.run();
}
fn startup(mut commands: Commands, asset_server: Res<AssetServer>) {
commands.spawn(Camera2dBundle::default());
// Ensure any tile / tileset paths are relative to assets/
let map_handle: Handle<TiledMap> = asset_server.load("map.tmx");
commands.spawn(TiledMapBundle {
tiled_map: map_handle,
..Default::default()
});
}
See the examples for more advanced use cases.
Bevy Compatibility
bevy | bevy_ecs_tilemap | bevy_ecs_tiled |
---|---|---|
0.14 | 0.14 | 0.3 |
0.13 | main@e4f3cc6 | branch 0.2 |
0.12 | 0.12 | 0.1 |
Assets credits
- colored tiles: orthogonal tileset from Steve Pryde, licensed under CC0 1.0
- drjamgo_hex_16x16: an hexagonal "pointy-top" tileset from Dr. Jango, licensed under CC0 1.0
- simple hex flat top: an hexagonal "flat-top" tileset from All things hex, licensed under CC0 1.0
- kenney-sketch-desert: an isometric tileset from Kenney, licensed under CC0 1.0
Contributing
If you can contribute, please do!
If you would like to contribute but don't know where to start, read this discussion.
LICENSE
This work is licensed under the MIT license.
SPDX-License-Identifier: MIT
Dependencies
~39–78MB
~1.5M SLoC