use games::*; fn main() { App::new() .add_plugins((BaseGamePlugin { name: "parallax example".into(), title: "Parallax".into(), game_type: GameType::Two, },)) .add_systems(Startup, spawn_background) .add_systems(Update, move_camera) .run(); } fn spawn_background( mut commands: Commands, mut meshes: ResMut>, mut materials: ResMut>, server: Res, ) { commands.spawn(( Name::new("Depth: 1.0"), Transform::default().with_translation(Vec3::new(0.0, 0.0, 0.0)).with_scale(Vec3::splat(50.0)), Mesh2d(meshes.add(Circle::new(1.0))), MeshMaterial2d(materials.add(ColorMaterial { texture: Some(server.load("bevy.png")), color: RED.into(), ..default() })), ParallaxDepth(1.0), Visibility::Inherited, )); commands.spawn(( Name::new("Depth: 2.0"), Transform::default().with_translation(Vec3::new(0.0, 0.0, -1.0)).with_scale(Vec3::splat(25.0)), Mesh2d(meshes.add(Circle::new(2.0))), MeshMaterial2d(materials.add(ColorMaterial { texture: Some(server.load("bevy.png")), color: GREEN.into(), ..default() })), ParallaxDepth(2.0), Visibility::Inherited, )); commands.spawn(( Name::new("Depth: 4.0"), Transform::default().with_translation(Vec3::new(0.0, 0.0, -2.0)).with_scale(Vec3::splat(12.5)), Mesh2d(meshes.add(Circle::new(4.0))), MeshMaterial2d(materials.add(ColorMaterial { texture: Some(server.load("bevy.png")), color: BLUE.into(), ..default() })), ParallaxDepth(4.0), Visibility::Inherited, )); commands.spawn(( Name::new("Depth: 8.0"), Transform::default().with_translation(Vec3::new(0.0, 0.0, -3.0)).with_scale(Vec3::splat(6.25)), Mesh2d(meshes.add(Circle::new(8.0))), MeshMaterial2d(materials.add(ColorMaterial { texture: Some(server.load("bevy.png")), color: YELLOW.into(), ..default() })), ParallaxDepth(8.0), Visibility::Inherited, )); } fn move_camera(mut t: Single<&mut Transform, With>, keys: Res>) { if keys.pressed(KeyCode::ArrowLeft) { t.translation.x -= 5.0; } else if keys.pressed(KeyCode::ArrowRight) { t.translation.x += 5.0; } if keys.pressed(KeyCode::ArrowDown) { t.translation.y -= 5.0; } else if keys.pressed(KeyCode::ArrowUp) { t.translation.y += 5.0; } }