use bevy::prelude::*; use crate::player::Player; use bevy::render::camera::Camera as BevyCamera; pub struct Camera; impl Plugin for Camera { fn build(&self, app: &mut App) { app.add_systems(Startup, spawn) .add_systems(PostUpdate, focus) .add_systems(Update, y_sort); } } fn spawn(mut commands: Commands) { let mut bundle = Camera2dBundle::default(); bundle.projection.scale = 1. / 2.; commands.spawn(bundle); } fn focus( player: Query<&Transform, With>, mut camera: Query<&mut Transform, (With, Without)>, ) { let newpos = player.single().translation; // println!("Cam pos: {newpos}"); camera.single_mut().translation = newpos } fn y_sort(mut q: Query<&mut Transform>) { q.for_each_mut(|mut tf| tf.translation.z = -tf.translation.y) }