This commit is contained in:
2026-01-14 19:36:23 -06:00
commit 12eea03a37
6 changed files with 5884 additions and 0 deletions
+52
View File
@@ -0,0 +1,52 @@
use bevy::{camera::ScalingMode, color::palettes::css::GREEN, prelude::*};
fn main() {
App::new()
.add_plugins(DefaultPlugins)
.add_systems(Startup, setup)
.add_systems(Update, sprite_movement)
.add_systems(Update, draw_gizmo)
.run();
}
#[derive(Component)]
enum Direction {
Left,
Right,
}
fn setup(mut commands: Commands, asset_server: Res<AssetServer>) {
let mut projection = OrthographicProjection::default_2d();
projection.scaling_mode = ScalingMode::AutoMin {
min_width: 1920.,
min_height: 1080.,
};
commands.spawn((Camera2d, Projection::Orthographic(projection)));
commands.spawn((
Sprite::from_image(asset_server.load("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;
}
}
}
fn draw_gizmo(mut gizmos: Gizmos) {
gizmos.rect_2d(Isometry2d::IDENTITY, Vec2::new(1920., 1080.), GREEN);
}