diff --git a/src/collision.rs b/src/collision.rs index b734a85..23270e5 100644 --- a/src/collision.rs +++ b/src/collision.rs @@ -15,7 +15,6 @@ fn check_collision( mut has_collided: Local, ) { if *has_collided { - println!("Collision!!!!!!!"); return; } @@ -28,6 +27,7 @@ fn check_collision( collider_transform.translation.truncate(), collider_collider.size / 2.0, ) { + println!("Collision!!!!!!!"); player_sprite.color = Color::srgb(1.0, 0.0, 0.0); *has_collided = true; break; @@ -41,3 +41,11 @@ fn overlap(a_center: Vec2, a_half: Vec2, b_center: Vec2, b_half: Vec2) -> bool { let overlap_y = (a_center.y - b_center.y).abs() < (a_half.y + b_half.y); overlap_x && overlap_y } + +pub struct CollisionPlugin; + +impl Plugin for CollisionPlugin { + fn build(&self, app: &mut App) { + app.add_systems(Update, check_collision); + } +} diff --git a/src/main.rs b/src/main.rs index 3769b99..64281ff 100644 --- a/src/main.rs +++ b/src/main.rs @@ -2,6 +2,7 @@ use bevy::{prelude::*, window::PresentMode}; use crate::background::BackgroundPlugin; use crate::camera::CameraPlugin; +use crate::collision::CollisionPlugin; use crate::player::PlayerPlugin; mod background; @@ -24,5 +25,6 @@ fn main() { .add_plugins(BackgroundPlugin) // Checkerboard background .add_plugins(PlayerPlugin) // Player .add_plugins(CameraPlugin) // Camera + .add_plugins(CollisionPlugin) // Collisions .run(); }