Move physics parts to a physics module
This commit is contained in:
16
src/birdoids/physics.rs
Normal file
16
src/birdoids/physics.rs
Normal file
@@ -0,0 +1,16 @@
|
||||
use bevy::prelude::*;
|
||||
|
||||
#[derive(Component, Deref, DerefMut)]
|
||||
pub struct Velocity(pub Vec3);
|
||||
|
||||
#[derive(Component, Default, Deref, DerefMut, PartialEq, Debug)]
|
||||
pub struct Force(pub Vec3);
|
||||
|
||||
pub fn apply_velocity(mut query: Query<(&mut Transform, &Velocity, &mut Force)>, time: Res<Time>) {
|
||||
for (mut transform, velocity, mut acceleration) in &mut query {
|
||||
let delta_v = **acceleration * time.delta_secs();
|
||||
**acceleration = Vec3::ZERO;
|
||||
let delta_position = (**velocity + delta_v) * time.delta_secs();
|
||||
transform.translation += delta_position;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user