可以使用bevy_tiled扩展库来加载和解析Tiled的.tsx文件。以下是使用bevy_tiled加载Tiled .tsx文件的示例代码:
use bevy::prelude::*;
use bevy_tilemap::prelude::*;
use bevy_tiled::TiledMap;
fn load_tiled_map() -> HandleUntyped {
let tiled_path = "path/to/tiled_map.tmx";
let map_asset = Asset::new(TiledMap::new(tiled_path));
map_asset.load_untyped(&mut *commands)
}
fn spawn_map(
commands: &mut Commands,
materials: &mut Assets,
map_handle: Handle,
) {
let mut builder = TilemapBuilder::default();
builder.auto_chunk();
builder.add_layer(
LayerSettings::new("Ground".to_string())
.with_opacity(1.0)
.with_visible(true),
);
commands.insert_resource(TilemapMaterials::default());
builder.spawn_tile_map(
commands,
materials,
map_handle,
None,
&Default::default(),
&mut *tile_query,
);
}
fn setup(
commands: &mut Commands,
asset_server: Res,
mut materials: ResMut>,
) {
let map_handle = load_tiled_map();
spawn_map(commands, &mut materials, map_handle);
}
在上述示例代码中,我们首先使用Asset来加载Tiled地图文件。然后,我们使用TilemapBuilder来创建一个新的Tilemap,并使用Tiled地图文件中的数据来填充它。最后,我们将TilemapMaterials和Tilemap实体作为资源存储在Commands中。这样,我们就可以使用bevy_ecs_tilemap了。