added aiming

This commit is contained in:
Franklin Blanco 2023-09-15 19:26:39 -07:00
parent 6d0012c782
commit 0d07fa2329
5 changed files with 41 additions and 5 deletions

View File

@ -47,6 +47,8 @@ pub fn capture_input(
front: keyboard_input.pressed(KeyCode::W),
back: keyboard_input.pressed(KeyCode::S),
sprint: keyboard_input.pressed(KeyCode::ShiftLeft),
lean_left: keyboard_input.pressed(KeyCode::Q),
lean_right: keyboard_input.pressed(KeyCode::E),
};
move_player(player_movement_input, player_query, time);
}

View File

@ -1 +1,26 @@
use bevy::prelude::*;
use crate::comps::core::markers::player::PlayerHand;
pub fn capture_hand_usage(
mouse_buttons: Res<Input<MouseButton>>,
mut query: Query<&mut Transform, With<PlayerHand>>,
time: Res<Time>,
) {
for mut transform in query.iter_mut() {
if mouse_buttons.pressed(MouseButton::Left) {
if mouse_buttons.just_pressed(MouseButton::Left) {
// First shot
} else {
// All other shots
}
}
// For now just set the transforms
if mouse_buttons.pressed(MouseButton::Right) {
*transform = Transform::from_xyz(0.0, -0.35, -1.5);
} else {
*transform = Transform::from_xyz(0.6, -0.45, -2.7)
}
}
}

View File

@ -96,8 +96,10 @@ pub struct PlayerMovementInput {
pub front: bool,
/// S KEY
pub back: bool,
// LShift (SPRINTING)
/// LShift (SPRINTING)
pub sprint: bool,
pub lean_left: bool,
pub lean_right: bool,
}
/// Applies game logic to determine how player should move.
@ -204,6 +206,10 @@ pub fn move_player(
}
}
if player_movement_input.lean_left {
//player_transform.rotation =
} else {}
if player_movement_input.up && player_linear_y_state.is_grounded(&PLAYER_JUMP_COOLDOWN_MS) {
player_external_force.impulse = Vec3::new(0.0, PLAYER_JUMP_FORCE, 0.0);
*player_linear_y_state = PlayerLinearYState::Jumping;

View File

@ -9,7 +9,7 @@ use crate::{
follow_cursor_with_camera, update_camera_vertical_position, MouseMovementSettings,
},
player_vertical_sync::sync_player_y_state,
spawn_player::spawn_player,
spawn_player::spawn_player, hands::capture_hand_usage,
},
},
};
@ -25,16 +25,19 @@ pub fn load_scene(application: &mut App) {
application.add_systems(Startup, spawn_ground);
application.add_systems(Startup, spawn_obstacles);
application.add_systems(Startup, spawn_player);
application.add_systems(PostStartup, spawn_firearm_on_player_hands.after(spawn_player));
application.add_systems(
PostStartup,
spawn_firearm_on_player_hands.after(spawn_player),
);
// Update
application.add_systems(Update, capture_input);
//application.add_systems(Update, sync_camera_to_player);
application.add_systems(Update, capture_cursor);
application.add_systems(Update, sync_player_y_state);
application.add_systems(Update, follow_cursor_with_camera);
application.add_systems(Update, asset_loaded);
application.add_systems(Update, update_camera_vertical_position);
application.add_systems(Update, capture_hand_usage);
application.add_systems(Startup, setup_lighting);
}

View File

@ -5,7 +5,7 @@ pub fn spawn_obstacles(
mut commands: Commands,
mut meshes: ResMut<Assets<Mesh>>,
mut materials: ResMut<Assets<StandardMaterial>>,
asset_server: Res<AssetServer>,
//asset_server: Res<AssetServer>,
) {
let box_1_mesh = shape::Box::new(3.0, 7.0, 3.0).into();
let box_2_mesh = shape::Box::new(3.0, 7.0, 3.0).into();