Player animation

This commit is contained in:
Daniel Flanagan 2023-12-22 21:58:59 -06:00
parent 27c58b569e
commit 0deaffcd32
Signed by: lytedev
GPG key ID: 5B2020A0F9921EF4

View file

@ -34,24 +34,35 @@ fn spawn_player(mut commands: Commands, assets: Res<AssetLoader>) {
)); ));
} }
fn player_movement(mut query: Query<&mut Heading, With<Player>>, input: Res<Input<KeyCode>>) { fn player_movement(
let mut heading = query.single_mut(); mut query: Query<(&mut TextureAtlasSprite, &mut Heading), With<Player>>,
input: Res<Input<KeyCode>>,
) {
let (mut sprite, mut heading) = query.single_mut();
**heading = Vec2::ZERO; **heading = Vec2::ZERO;
for key in input.get_pressed() { for key in input.get_pressed() {
match key { match key {
KeyCode::W | KeyCode::Up => {
**heading += Vec2::Y;
}
KeyCode::S | KeyCode::Down => {
**heading -= Vec2::Y;
}
KeyCode::A | KeyCode::Left => { KeyCode::A | KeyCode::Left => {
**heading -= Vec2::X; **heading -= Vec2::X;
} }
KeyCode::D | KeyCode::Right => { KeyCode::D | KeyCode::Right => {
**heading += Vec2::X; **heading += Vec2::X;
} }
KeyCode::W | KeyCode::Up => {
**heading += Vec2::Y;
}
KeyCode::S | KeyCode::Down => {
**heading -= Vec2::Y;
}
_ => {} _ => {}
} }
} }
if heading.y < 0. {
sprite.index = 0;
} else if heading.y > 0. {
sprite.index = 1;
} else if heading.x != 0. {
sprite.index = 2;
sprite.flip_x = heading.x > 0.;
}
} }