From 079341f5a84b743de068b4c1f25064915e23050b Mon Sep 17 00:00:00 2001 From: Rendo Date: Sat, 15 Nov 2025 19:04:08 +0500 Subject: [PATCH] Projectrile movement and moving refactor --- src/damagable.rs | 7 +++++ src/main.rs | 8 +++-- src/movable.rs | 42 ------------------------- src/projectile.rs | 31 ++++++++++++++++++- src/ships/enemy.rs | 4 +-- src/ships/mod.rs | 6 ++-- src/ships/player.rs | 7 ++--- src/velocity.rs | 75 +++++++++++++++++++++++++++++++++++++++++++++ 8 files changed, 125 insertions(+), 55 deletions(-) delete mode 100644 src/movable.rs create mode 100644 src/velocity.rs diff --git a/src/damagable.rs b/src/damagable.rs index 70849e8..fbe082d 100644 --- a/src/damagable.rs +++ b/src/damagable.rs @@ -1,4 +1,5 @@ use bevy::prelude::*; +use std::default::Default; pub struct DamagablePlugin; @@ -14,6 +15,12 @@ pub struct Damagable { max_hp: u32, } +impl Default for Damagable { + fn default() -> Self { + Self { max_hp: 15, hp: 15 } + } +} + impl Damagable { pub fn new(max_hp: u32) -> Damagable { Damagable { max_hp, hp: max_hp } diff --git a/src/main.rs b/src/main.rs index 8d72a61..d143aa6 100644 --- a/src/main.rs +++ b/src/main.rs @@ -2,21 +2,23 @@ use bevy::prelude::*; use crate::collision::CollisionPlugin; use crate::damagable::DamagablePlugin; -use crate::movable::MovablePlugin; +use crate::projectile::ProjectilePlugin; use crate::ships::ShipsPlugin; +use crate::velocity::VelocityPlugin; mod collision; mod damagable; -mod movable; mod projectile; mod ships; +mod velocity; fn main() { App::new() .add_plugins(DefaultPlugins) - .add_plugins(MovablePlugin) + .add_plugins(VelocityPlugin) .add_plugins(CollisionPlugin) .add_plugins(ShipsPlugin) .add_plugins(DamagablePlugin) + .add_plugins(ProjectilePlugin) .run(); } diff --git a/src/movable.rs b/src/movable.rs deleted file mode 100644 index 4fcd820..0000000 --- a/src/movable.rs +++ /dev/null @@ -1,42 +0,0 @@ -use bevy::prelude::*; - -pub struct MovablePlugin; - -impl Plugin for MovablePlugin { - fn build(&self, app: &mut App) { - app.insert_resource(Time::::from_hz(60.0)) - .add_systems(FixedUpdate, movement_system); - } -} - -#[derive(Component)] -pub struct Movable { - pub linear_speed: f32, - pub rotation_speed: f32, - pub max_linear_speed: f32, - pub max_rotation_speed: f32, -} - -impl Movable { - pub fn new(max_linear_speed: f32, max_rotation_speed: f32) -> Movable { - Movable { - linear_speed: 0., - rotation_speed: 0., - max_linear_speed: max_linear_speed, - max_rotation_speed: max_rotation_speed, - } - } -} - -fn movement_system(time: Res