Fix: apply steering input properly
The ship in Asteroids isn't expected to spin up while holding a steering direction, but that's exactly what I just made it do. Fix that problem by assigning, not accumulating, the angular velocity for the ship.
This commit is contained in:
@@ -13,6 +13,6 @@ pub(crate) const ASTEROID_SMALL_COLOR: Color = Color::srgb(1.0, 0., 0.);
|
|||||||
// TODO: asteroid medium & large
|
// TODO: asteroid medium & large
|
||||||
|
|
||||||
pub(crate) const SHIP_THRUST: f32 = 1.0;
|
pub(crate) const SHIP_THRUST: f32 = 1.0;
|
||||||
pub(crate) const SHIP_ROTATION: f32 = 0.1; // +/- rotation speed in... radians per frame
|
pub(crate) const SHIP_ROTATION: f32 = 4.0; // +/- rotation speed in... radians per frame
|
||||||
|
|
||||||
pub const RNG_SEED: [u8; 32] = *b"12345678909876543210123456789098";
|
pub const RNG_SEED: [u8; 32] = *b"12345678909876543210123456789098";
|
||||||
|
|||||||
@@ -280,9 +280,11 @@ fn input_ship_rotation(
|
|||||||
};
|
};
|
||||||
|
|
||||||
if keyboard_input.pressed(KeyCode::KeyA) {
|
if keyboard_input.pressed(KeyCode::KeyA) {
|
||||||
angular_vel.0 += SHIP_ROTATION;
|
angular_vel.0 = SHIP_ROTATION;
|
||||||
} else if keyboard_input.pressed(KeyCode::KeyD) {
|
} else if keyboard_input.pressed(KeyCode::KeyD) {
|
||||||
angular_vel.0 -= SHIP_ROTATION;
|
angular_vel.0 = -SHIP_ROTATION;
|
||||||
|
} else {
|
||||||
|
angular_vel.0 = 0.0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
use crate::{
|
use crate::{
|
||||||
physics::{Velocity, Wrapping}, AngularVelocity, GameAssets
|
AngularVelocity, GameAssets,
|
||||||
|
physics::{Velocity, Wrapping},
|
||||||
};
|
};
|
||||||
|
|
||||||
use bevy::prelude::*;
|
use bevy::prelude::*;
|
||||||
|
|||||||
Reference in New Issue
Block a user