
# Objective Make the examples look more uniform and more polished. following the issue #17167 ## Solution - [x] Added a minimal UI explaining how to interact with the examples only when needed. - [x] Used the same notation for interactions ex : "Up Arrow: Move Forward \nLeft / Right Arrow: Turn" - [x] Set the color to [GRAY](https://github.com/bevyengine/bevy/pull/17237#discussion_r1907560092) when it's not visible enough - [x] Changed some colors to be easy on the eyes - [x] removed the //camera comment - [x] Unified the use of capital letters in the examples. - [x] Simplified the mesh2d_arc offset calculations. ... --------- Co-authored-by: Alice Cecile <alice.i.cecile@gmail.com> Co-authored-by: Rob Parrett <robparrett@gmail.com>
45 lines
1.2 KiB
Rust
45 lines
1.2 KiB
Rust
//! Renders a 2D scene containing a single, moving sprite.
|
|
|
|
use bevy::prelude::*;
|
|
|
|
fn main() {
|
|
App::new()
|
|
.add_plugins(DefaultPlugins)
|
|
.add_systems(Startup, setup)
|
|
.add_systems(Update, sprite_movement)
|
|
.run();
|
|
}
|
|
|
|
#[derive(Component)]
|
|
enum Direction {
|
|
Left,
|
|
Right,
|
|
}
|
|
|
|
fn setup(mut commands: Commands, asset_server: Res<AssetServer>) {
|
|
commands.spawn(Camera2d);
|
|
|
|
commands.spawn((
|
|
Sprite::from_image(asset_server.load("branding/icon.png")),
|
|
Transform::from_xyz(0., 0., 0.),
|
|
Direction::Right,
|
|
));
|
|
}
|
|
|
|
/// The sprite is animated by changing its translation depending on the time that has passed since
|
|
/// the last frame.
|
|
fn sprite_movement(time: Res<Time>, mut sprite_position: Query<(&mut Direction, &mut Transform)>) {
|
|
for (mut logo, mut transform) in &mut sprite_position {
|
|
match *logo {
|
|
Direction::Right => transform.translation.x += 150. * time.delta_secs(),
|
|
Direction::Left => transform.translation.x -= 150. * time.delta_secs(),
|
|
}
|
|
|
|
if transform.translation.x > 200. {
|
|
*logo = Direction::Left;
|
|
} else if transform.translation.x < -200. {
|
|
*logo = Direction::Right;
|
|
}
|
|
}
|
|
}
|