refactor
This commit is contained in:
parent
0181ad7f2d
commit
45fee92eea
6 changed files with 37 additions and 90 deletions
36
src/ships/player.rs
Normal file
36
src/ships/player.rs
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
use crate::movable::Movable;
|
||||
use bevy::prelude::*;
|
||||
|
||||
#[derive(Component)]
|
||||
pub struct Player {
|
||||
pub(super) acceleration: f32,
|
||||
}
|
||||
|
||||
pub(super) fn player_movement_system(
|
||||
time: Res<Time>,
|
||||
keyboard_input: Res<ButtonInput<KeyCode>>,
|
||||
query: Single<(&mut Movable, &Player)>,
|
||||
) {
|
||||
let (mut movable, player) = query.into_inner();
|
||||
let mut movement_factor = 0.0;
|
||||
let mut rotation_factor = 0.0;
|
||||
|
||||
if keyboard_input.pressed(KeyCode::ArrowLeft) {
|
||||
rotation_factor += 1.0;
|
||||
}
|
||||
|
||||
if keyboard_input.pressed(KeyCode::ArrowRight) {
|
||||
rotation_factor -= 1.0;
|
||||
}
|
||||
|
||||
if keyboard_input.pressed(KeyCode::ArrowUp) {
|
||||
movement_factor += 1.0;
|
||||
}
|
||||
if keyboard_input.pressed(KeyCode::ArrowDown) {
|
||||
movement_factor -= 1.0;
|
||||
}
|
||||
|
||||
movable.linear_speed += (movement_factor * player.acceleration * time.delta_secs())
|
||||
.clamp(-movable.max_linear_speed, movable.max_linear_speed);
|
||||
movable.rotation_speed = rotation_factor * movable.max_rotation_speed;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue