diff options
Diffstat (limited to 'src/player.rs')
| -rw-r--r-- | src/player.rs | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/player.rs b/src/player.rs index 9e4d418..996e554 100644 --- a/src/player.rs +++ b/src/player.rs @@ -11,6 +11,7 @@ pub struct Player { right_p: bool, up_p: bool, down_p: bool, + shift_p: bool, y_d: i32, x_d: i32, pub fire_rate: u32, @@ -18,7 +19,7 @@ pub struct Player { impl Player { pub fn new() -> Player { - Player { x: 400, y: 500, x_d: 0, y_d: 0, down_p: false, left_p: false, right_p: false, up_p: false, fire_rate: 30 } + Player { x: 400, y: 500, x_d: 0, y_d: 0, down_p: false, left_p: false, right_p: false, up_p: false, fire_rate: 15, shift_p: false } } pub fn act(&mut self, events: &mut sdl2::event::EventPollIterator){ @@ -56,6 +57,14 @@ impl Player { sdl2::event::Event::KeyUp { keycode: Some(sdl2::keyboard::Keycode::Right), .. } => { self.right_p = false; } + sdl2::event::Event::KeyDown { keycode: Some(sdl2::keyboard::Keycode::LShift), .. } | + sdl2::event::Event::KeyDown { keycode: Some(sdl2::keyboard::Keycode::RShift), .. } => { + self.shift_p = true; + } + sdl2::event::Event::KeyUp { keycode: Some(sdl2::keyboard::Keycode::LShift), .. } | + sdl2::event::Event::KeyUp { keycode: Some(sdl2::keyboard::Keycode::RShift), .. } => { + self.shift_p = false; + } _ => { }, } } @@ -91,8 +100,8 @@ impl Player { self.y_d = 0; } - self.x += self.x_d; - self.y += self.y_d; + self.x += if self.shift_p { self.x_d } else { self.x_d * 3 }; + self.y += if self.shift_p { self.y_d } else { self.y_d * 3 }; } } |
