move player update code to a method

This commit is contained in:
2014-12-10 21:39:11 +01:00
parent 36dc4e62cd
commit 08ac748078

View File

@@ -18,11 +18,19 @@ struct Player {
y: f32, y: f32,
vel_x: f32, vel_x: f32,
vel_y: f32, vel_y: f32,
gravity: f32,
} }
impl Player { impl Player {
fn new(x: f32, y: f32) -> Player { fn new(x: f32, y: f32) -> Player {
Player { x: x, y: y, vel_x: 0.0, vel_y: 0.0 } Player { x: x, y: y, vel_x: 0.0, vel_y: 0.0, gravity: 0.3 }
}
pub fn update(&mut self) {
self.vel_y += self.gravity;
self.x += self.vel_x;
self.y += self.vel_y;
} }
pub fn render(&self, renderer: &sdl2::render::Renderer) { pub fn render(&self, renderer: &sdl2::render::Renderer) {
@@ -50,7 +58,6 @@ fn main() {
let mut player = Player::new(390.0, 290.0); let mut player = Player::new(390.0, 290.0);
let mut on_ground = true; let mut on_ground = true;
let mut gravity : f32 = 0.3;
let mut current : uint = 0; let mut current : uint = 0;
let mut elapsed : uint = 0; let mut elapsed : uint = 0;
@@ -96,10 +103,7 @@ fn main() {
} }
while lag >= MS_PER_UPDATE { while lag >= MS_PER_UPDATE {
player.vel_y += gravity; player.update();
player.x += player.vel_x;
player.y += player.vel_y;
if player.y > 290.0 { if player.y > 290.0 {
player.y = 290.0; player.y = 290.0;