2个不稳定版本
0.2.0 | 2021年10月25日 |
---|---|
0.1.0 | 2021年6月5日 |
#1856 in 游戏开发
455KB
2.5K SLoC
bevy_tmx
bevy_tmx是bevy游戏引擎的一个插件,允许您将来自Tiled地图编辑器的.tmx文件作为场景读取。该插件可以配置,以便您可以向场景的实体添加更多自己的组件。
目前,正在渲染的瓦片地图相对简单,它们被加载为简单的精灵实体,每个图层和精灵图集一个。
功能
- 支持tiled的所有瓦片布局模式
- 正交
- 等距交错和非交错
- 六边形交错
- 支持自定义对象处理的对象图层
- 支持自定义图像图层处理的图像图层
- 透视渲染
待办事项
- 无限地图支持
- 除
RightDown
之外的所有渲染顺序
概述
使用bevy_tmx非常简单,只需将TmxPlugin
添加到您的App
中,然后加载一个场景。如果您需要向从.tmx
文件加载的实体添加自定义功能,可以在加载时自定义TmxLoader
。
示例
use bevy::prelude::*;
use bevy::window::WindowMode;
use bevy_tmx::TmxPlugin;
struct PlayerComponent;
fn main() {
App::build()
.insert_resource(WindowDescriptor {
title: "Ortho".to_string(),
width: 1024.,
height: 720.,
vsync: false,
resizable: true,
mode: WindowMode::Windowed,
..Default::default()
})
.add_plugins(DefaultPlugins)
.add_plugin(TmxPlugin::default()
// Note that in tiled, the y axis points down, but in bevy it points up. The default scale is (1.0, -1.0).
.scale(Vec2::new(3.0, -3.0))
// This is the place to add more functionality to your objects
.visit_objects(|object, entity| {
if object.ty == "player" {
entity.insert(PlayerComponent);
}
})
)
.add_startup_system(spawn_scene.system())
.run()
}
fn spawn_scene(mut commands: Commands, asset_server: Res<AssetServer>) {
commands.spawn_scene(asset_server.load("ortho-map.tmx"));
commands.spawn().insert_bundle(OrthographicCameraBundle {
transform: Transform::from_xyz(600.0, -600.0, 50.0),
..OrthographicCameraBundle::new_2d()
});
}
依赖项
~21–65MB
~436K SLoC