summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRaymond Hogenson <rhogenson@posteo.net>2018-08-18 15:17:27 -0400
committerRaymond Hogenson <rhogenson@posteo.net>2018-08-18 15:17:27 -0400
commit4d789507e6dbfeee72a241ee460a7a17e66f4970 (patch)
treee87a94f5d570b8153bf221d7a8f2b7f56678c4ba
parente8b4d6a42ef2f45e9ccc5d1b068bb176cedc8695 (diff)
downloadstallman-shooter-4d789507e6dbfeee72a241ee460a7a17e66f4970.tar.zst
Add the ability to move more quickly
I also upped the fire rate
-rw-r--r--src/main.rs2
-rw-r--r--src/player.rs15
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 };
}
}