diff --git a/src/camera.rs b/src/camera.rs new file mode 100644 index 0000000..fd021ba --- /dev/null +++ b/src/camera.rs @@ -0,0 +1,27 @@ +use bevy::{prelude::*, winit::UpdateMode}; + +use crate::player::Player; + +#[derive(Component)] +struct Camera; + +fn spawn_camera(mut commands: Commands) { + commands.spawn(Camera2d); +} + +// Follow the player with the camera +fn follow_player( + player: Single<&Transform, With>, + mut camera: Single<&mut Transform, With>, +) { + camera.translation = player.translation; +} + +struct CameraPlugin; + +impl Plugin for CameraPlugin { + fn build(&self, app: &mut App) { + app.add_systems(Startup, spawn_camera) + .add_systems(Update, follow_player); + } +}