```rust
// Movement
plan.forward(100);
plan.backward(50);
// Rotation
plan.left(90); // degrees
plan.right(45);
// Circular arcs
plan.circle_left(50.0, 180.0, 36); // radius, angle (degrees), segments
plan.circle_right(50.0, 180.0, 36); // draws arc to the right
// Pen control
plan.pen_up();
plan.pen_down();
// Appearance
plan.set_color(RED);
plan.set_pen_width(5.0);
plan.hide();
plan.show();
// Turtle shape
plan.shape(ShapeType::Triangle);
plan.shape(ShapeType::Turtle); // Default classic turtle shape
plan.shape(ShapeType::Circle);
plan.shape(ShapeType::Square);
plan.shape(ShapeType::Arrow);
// Custom shape
let custom = TurtleShape::new(
vec![vec2(10.0, 0.0), vec2(-5.0, 5.0), vec2(-5.0, -5.0)],
true // filled
);
plan.set_shape(custom);
// Chaining
plan.forward(100).right(90).forward(50);
```
33 lines
1.1 KiB
TOML
33 lines
1.1 KiB
TOML
[workspace]
|
|
resolver = "2"
|
|
|
|
members = ["turtle-lib", "turtle-example", "turtle-lib-macroquad"]
|
|
|
|
[workspace.dependencies]
|
|
# Pin Bevy across the workspace
|
|
bevy = { version = "0.17.1" }
|
|
|
|
# Bevy ecosystem crates compatible with Bevy 0.17
|
|
# Lyon: main branch targets latest Bevy (0.17 at time of writing)
|
|
bevy_prototype_lyon = { git = "https://github.com/pindash-io/bevy_prototype_lyon.git", branch = "bevy-0.17" }
|
|
|
|
# Tweening: pin to a recent commit on main that states compatibility with latest Bevy
|
|
# If this still pulls Bevy 0.16, we'll revisit and temporarily gate tweening.
|
|
bevy_tweening = { git = "https://github.com/djeedai/bevy_tweening.git", rev = "8b3cad18a090078d9055d77a632be44e701aecc7" }
|
|
|
|
# Inspector: main branch adds support for newer Bevy, use git until 0.17 release is published
|
|
bevy-inspector-egui = { git = "https://github.com/jakobhellermann/bevy-inspector-egui.git" }
|
|
|
|
# Shared utility crates
|
|
num-traits = "0.2"
|
|
rand = "0.8"
|
|
|
|
|
|
# Enable a small amount of optimization in debug mode
|
|
[profile.dev]
|
|
opt-level = 1
|
|
|
|
# Enable high optimizations for dependencies (incl. Bevy), but not for our code:
|
|
[profile.dev.package."*"]
|
|
opt-level = 3
|