mirror of
https://gitlab.com/veloren/veloren.git
synced 2024-08-30 18:12:32 +00:00
Added test gliding
Former-commit-id: 7aa1513511490feec531f10e58ad955c485ac594
This commit is contained in:
parent
8af606e348
commit
8ef8c178d7
@ -7,6 +7,7 @@ pub enum InputEvent {
|
||||
pub struct Input {
|
||||
pub move_dir: Vec2<f32>,
|
||||
pub jumping: bool,
|
||||
pub gliding: bool,
|
||||
pub events: Vec<InputEvent>,
|
||||
}
|
||||
|
||||
@ -15,6 +16,7 @@ impl Default for Input {
|
||||
Input {
|
||||
move_dir: Vec2::zero(),
|
||||
jumping: false,
|
||||
gliding: false,
|
||||
events: Vec::new(),
|
||||
}
|
||||
}
|
||||
|
@ -156,6 +156,7 @@ impl Client {
|
||||
comp::Control {
|
||||
move_dir: input.move_dir,
|
||||
jumping: input.jumping,
|
||||
gliding: input.gliding,
|
||||
},
|
||||
);
|
||||
|
||||
|
@ -18,6 +18,7 @@ impl Component for Agent {
|
||||
pub struct Control {
|
||||
pub move_dir: Vec2<f32>,
|
||||
pub jumping: bool,
|
||||
pub gliding: bool,
|
||||
}
|
||||
|
||||
impl Default for Control {
|
||||
@ -25,6 +26,7 @@ impl Default for Control {
|
||||
Self {
|
||||
move_dir: Vec2::zero(),
|
||||
jumping: false,
|
||||
gliding: false,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -53,6 +53,10 @@ impl<'a> System<'a> for Sys {
|
||||
// TODO: Don't hard-code this
|
||||
// Apply physics to the player: acceleration and non-linear decceleration
|
||||
vel.0 += control.move_dir * 0.2 - vel.0.map(|e| e * e.abs() + e) * 0.002;
|
||||
|
||||
if control.gliding && vel.0.z < 0.0 {
|
||||
vel.0.z += 9.81 * 3.95 * dt.0;
|
||||
}
|
||||
}
|
||||
|
||||
let animation = if on_ground {
|
||||
|
@ -6,6 +6,7 @@ pub struct KeyState {
|
||||
pub up: bool,
|
||||
pub down: bool,
|
||||
pub jump: bool,
|
||||
pub glide: bool,
|
||||
}
|
||||
|
||||
impl KeyState {
|
||||
@ -16,6 +17,7 @@ impl KeyState {
|
||||
up: false,
|
||||
down: false,
|
||||
jump: false,
|
||||
glide: false,
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -66,6 +66,7 @@ impl SessionState {
|
||||
Input {
|
||||
move_dir,
|
||||
jumping: self.key_state.jump,
|
||||
gliding: self.key_state.glide,
|
||||
events: input_events,
|
||||
},
|
||||
dt,
|
||||
@ -145,12 +146,14 @@ impl PlayState for SessionState {
|
||||
self.input_events.push(InputEvent::Jump);
|
||||
self.key_state.jump = true;
|
||||
}
|
||||
Event::KeyDown(Key::Glide) => self.key_state.glide = true,
|
||||
// Movement Key Released
|
||||
Event::KeyUp(Key::MoveForward) => self.key_state.up = false,
|
||||
Event::KeyUp(Key::MoveBack) => self.key_state.down = false,
|
||||
Event::KeyUp(Key::MoveLeft) => self.key_state.left = false,
|
||||
Event::KeyUp(Key::MoveRight) => self.key_state.right = false,
|
||||
Event::KeyUp(Key::Jump) => self.key_state.jump = false,
|
||||
Event::KeyUp(Key::Glide) => self.key_state.glide = false,
|
||||
// Pass all other events to the scene
|
||||
event => {
|
||||
self.scene.handle_input_event(event);
|
||||
|
@ -25,6 +25,7 @@ pub struct ControlSettings {
|
||||
pub move_back: VirtualKeyCode,
|
||||
pub move_right: VirtualKeyCode,
|
||||
pub jump: VirtualKeyCode,
|
||||
pub glide: VirtualKeyCode,
|
||||
pub map: VirtualKeyCode,
|
||||
pub bag: VirtualKeyCode,
|
||||
pub quest_log: VirtualKeyCode,
|
||||
@ -60,6 +61,7 @@ impl Default for Settings {
|
||||
move_back: VirtualKeyCode::S,
|
||||
move_right: VirtualKeyCode::D,
|
||||
jump: VirtualKeyCode::Space,
|
||||
glide: VirtualKeyCode::LShift,
|
||||
map: VirtualKeyCode::M,
|
||||
bag: VirtualKeyCode::B,
|
||||
quest_log: VirtualKeyCode::L,
|
||||
|
@ -46,6 +46,7 @@ impl Window {
|
||||
key_map.insert(settings.controls.move_back, Key::MoveBack);
|
||||
key_map.insert(settings.controls.move_right, Key::MoveRight);
|
||||
key_map.insert(settings.controls.jump, Key::Jump);
|
||||
key_map.insert(settings.controls.glide, Key::Glide);
|
||||
key_map.insert(settings.controls.map, Key::Map);
|
||||
key_map.insert(settings.controls.bag, Key::Bag);
|
||||
key_map.insert(settings.controls.quest_log, Key::QuestLog);
|
||||
@ -182,6 +183,7 @@ pub enum Key {
|
||||
MoveLeft,
|
||||
MoveRight,
|
||||
Jump,
|
||||
Glide,
|
||||
Enter,
|
||||
Escape,
|
||||
Map,
|
||||
|
Loading…
Reference in New Issue
Block a user