bevy_prototype_lyon
enables Bevy users to draw 2D shapes and paths, like triangles, circles, rectangles, lines, arcs and beziers.
Currently Bevy does not support drawing custom shapes in an easy way. This crate uses a variation of Bevy's SpriteBundle
with custom meshes to draw shapes. The lyon crate is used to generate those custom mesh.
- Restored support for bevy_webgl2 (lost on v0.3.0).
- Support for Bevy 0.5
- Shapes with outline
- Complete API reworking
- Regular polygon support
- Extensible shape system through
Geometry
trait
- updated dependency to
lyon_tessellation v0.17
- with
lyon_tessellation v0.17
, unfortunately rectangles with rounded borders are no longer supported. Quad
,Triangle
andPolyline
have been substituted by a general-purposePolygon
shape.
Add the following line in your cargo.toml
manifest file, under the [dependencies]
section:
bevy_prototype_lyon = "0.3.1"
Then, you can start by drawing simple shapes:
use bevy::prelude::*;
use bevy_prototype_lyon::prelude::*;
fn main() {
App::build()
.insert_resource(Msaa { samples: 8 })
.add_plugins(DefaultPlugins)
.add_plugin(ShapePlugin)
.add_startup_system(setup.system())
.run();
}
fn setup(mut commands: Commands) {
let shape = shapes::RegularPolygon {
sides: 6,
feature: shapes::RegularPolygonFeature::Radius(200.0),
..shapes::RegularPolygon::default()
};
commands.spawn_bundle(OrthographicCameraBundle::new_2d());
commands.spawn_bundle(GeometryBuilder::build_as(
&shape,
ShapeColors::outlined(Color::TEAL, Color::BLACK),
DrawMode::Outlined {
fill_options: FillOptions::default(),
outline_options: StrokeOptions::default().with_line_width(10.0),
},
Transform::default(),
));
}
Don't forget to check out the examples to learn more!
I strive to support the latest version of Bevy. Support for a version of Bevy is dropped as soon as a new one is released.
The following table shows the latest version of bevy_prototype_lyon
that supports a certain version of Bevy.
bevy | bevy_prototype_lyon | license |
---|---|---|
0.5 | 0.3 | MIT |
0.4 | 0.2 | MIT |
Licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.