Extract systems

This commit is contained in:
Michael Bradley 2025-05-19 00:27:12 -04:00
parent cef21f4a00
commit 214e0ceedc
Signed by: MichaelBradley
SSH key fingerprint: SHA256:BKO2eI2LPsCbQS3n3i5SdwZTAIV3F1lHezR07qP+Ob0
9 changed files with 199 additions and 191 deletions

40
src/game/runtime.rs Normal file
View file

@ -0,0 +1,40 @@
use avian2d::prelude::*;
use bevy::prelude::*;
use super::objects::Player;
pub fn move_player(
time: Res<Time>,
keyboard_input: Res<ButtonInput<KeyCode>>,
mut velocity: Single<&mut LinearVelocity, With<Player>>,
) -> Result {
let acceleration = 500.0;
let delta_time = time.delta_secs();
if keyboard_input.any_pressed([KeyCode::KeyW, KeyCode::ArrowUp]) {
velocity.y += acceleration * delta_time;
}
if keyboard_input.any_pressed([KeyCode::KeyS, KeyCode::ArrowDown]) {
velocity.y -= acceleration * delta_time;
}
if keyboard_input.any_pressed([KeyCode::KeyA, KeyCode::ArrowLeft]) {
velocity.x -= acceleration * delta_time;
}
if keyboard_input.any_pressed([KeyCode::KeyD, KeyCode::ArrowRight]) {
velocity.x += acceleration * delta_time;
}
Ok(())
}
pub fn quit(mut exit: EventWriter<AppExit>) {
exit.write(AppExit::Success);
}
pub fn move_camera(
mut camera: Single<&mut Transform, (Without<Player>, With<IsDefaultUiCamera>)>,
player: Single<&Transform, (With<Player>, Without<IsDefaultUiCamera>)>,
) {
camera.translation = camera.translation.lerp(player.translation, 0.05);
}