diff options
| -rw-r--r-- | src/main.rs | 2 | ||||
| -rw-r--r-- | src/player.rs | 15 |
2 files changed, 13 insertions, 4 deletions
diff --git a/src/main.rs b/src/main.rs index 0e40fdd..603aa5c 100644 --- a/src/main.rs +++ b/src/main.rs @@ -42,7 +42,7 @@ fn frame(canvas: &mut sdl2::render::WindowCanvas, state: &mut state::State, even } state.player.act(events); if count % state.player.fire_rate as u64 == 0 { - state.player_bullets.push(state::PBullet::new(state.player.x, 0., state.player.y, -1.)); + state.player_bullets.push(state::PBullet::new(state.player.x, 0., state.player.y, -3.)); } if state.bullets.iter().any(|bullet| state.player.overlaps(bullet)) || new_bullets.iter().any(|bullet| state.player.overlaps(bullet)) { return Result::Loss; 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 }; } } |
