remove font, and create a player struct
This commit is contained in:
9
Cargo.lock
generated
9
Cargo.lock
generated
@@ -3,7 +3,6 @@ name = "smb"
|
|||||||
version = "0.0.1"
|
version = "0.0.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"sdl2 0.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
"sdl2 0.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"sdl2_ttf 0.0.3 (git+https://github.com/andelf/rust-sdl2_ttf)",
|
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -11,11 +10,3 @@ name = "sdl2"
|
|||||||
version = "0.0.7"
|
version = "0.0.7"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "sdl2_ttf"
|
|
||||||
version = "0.0.3"
|
|
||||||
source = "git+https://github.com/andelf/rust-sdl2_ttf#614fdbed9f07208d280a41abf02cc91a401d6cb5"
|
|
||||||
dependencies = [
|
|
||||||
"sdl2 0.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
||||||
]
|
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,3 @@ authors = ["logaritmisk <anders.e.olsson@gmail.com>"]
|
|||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
sdl2 = "0.0.7"
|
sdl2 = "0.0.7"
|
||||||
|
|
||||||
|
|
||||||
[dependencies.sdl2_ttf]
|
|
||||||
git = "https://github.com/andelf/rust-sdl2_ttf"
|
|
||||||
|
|||||||
61
src/main.rs
61
src/main.rs
@@ -13,6 +13,27 @@ const SCREEN_HEIGHT : int = 600;
|
|||||||
const MS_PER_UPDATE : uint = 10;
|
const MS_PER_UPDATE : uint = 10;
|
||||||
|
|
||||||
|
|
||||||
|
struct Player {
|
||||||
|
x: f32,
|
||||||
|
y: f32,
|
||||||
|
vel_x: f32,
|
||||||
|
vel_y: f32,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Player {
|
||||||
|
fn new(x: f32, y: f32) -> Player {
|
||||||
|
Player { x: x, y: y, vel_x: 0.0, vel_y: 0.0 }
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn render(&self, renderer: &sdl2::render::Renderer) {
|
||||||
|
let player = Rect::new(self.x as i32, self.y as i32, 10, 10);
|
||||||
|
|
||||||
|
let _ = renderer.set_draw_color(sdl2::pixels::Color::RGB(0, 255, 0));
|
||||||
|
let _ = renderer.fill_rect(&player);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
sdl2::init(sdl2::INIT_EVERYTHING);
|
sdl2::init(sdl2::INIT_EVERYTHING);
|
||||||
|
|
||||||
@@ -26,13 +47,7 @@ fn main() {
|
|||||||
Err(err) => panic!("failed to create renderer: {}", err)
|
Err(err) => panic!("failed to create renderer: {}", err)
|
||||||
};
|
};
|
||||||
|
|
||||||
let mut player = Rect::new(0, 290, 10, 10);
|
let mut player = Player::new(390.0, 290.0);
|
||||||
|
|
||||||
let mut x : f32 = 390.0;
|
|
||||||
let mut y : f32 = 290.0;
|
|
||||||
|
|
||||||
let mut v_x : f32 = 0.0;
|
|
||||||
let mut v_y : f32 = 0.0;
|
|
||||||
|
|
||||||
let mut on_ground = true;
|
let mut on_ground = true;
|
||||||
let mut gravity : f32 = 0.3;
|
let mut gravity : f32 = 0.3;
|
||||||
@@ -55,12 +70,12 @@ fn main() {
|
|||||||
if key == sdl2::keycode::KeyCode::Escape {
|
if key == sdl2::keycode::KeyCode::Escape {
|
||||||
break 'event;
|
break 'event;
|
||||||
} else if key == sdl2::keycode::KeyCode::Right {
|
} else if key == sdl2::keycode::KeyCode::Right {
|
||||||
v_x = 4.0;
|
player.vel_x = 4.0;
|
||||||
} else if key == sdl2::keycode::KeyCode::Left {
|
} else if key == sdl2::keycode::KeyCode::Left {
|
||||||
v_x = -4.0;
|
player.vel_x = -4.0;
|
||||||
} else if key == sdl2::keycode::KeyCode::Up {
|
} else if key == sdl2::keycode::KeyCode::Up {
|
||||||
if on_ground {
|
if on_ground {
|
||||||
v_y = -8.0;
|
player.vel_y = -8.0;
|
||||||
|
|
||||||
on_ground = false;
|
on_ground = false;
|
||||||
}
|
}
|
||||||
@@ -68,12 +83,12 @@ fn main() {
|
|||||||
},
|
},
|
||||||
Event::KeyUp(_, _, key, _, _, _) => {
|
Event::KeyUp(_, _, key, _, _, _) => {
|
||||||
if key == sdl2::keycode::KeyCode::Right {
|
if key == sdl2::keycode::KeyCode::Right {
|
||||||
v_x = 0.0;
|
player.vel_x = 0.0;
|
||||||
} else if key == sdl2::keycode::KeyCode::Left {
|
} else if key == sdl2::keycode::KeyCode::Left {
|
||||||
v_x = 0.0;
|
player.vel_x = 0.0;
|
||||||
} else if key == sdl2::keycode::KeyCode::Up {
|
} else if key == sdl2::keycode::KeyCode::Up {
|
||||||
if v_y < -4.0 {
|
if player.vel_y < -4.0 {
|
||||||
v_y = -4.0;
|
player.vel_y = -4.0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -81,14 +96,14 @@ fn main() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
while lag >= MS_PER_UPDATE {
|
while lag >= MS_PER_UPDATE {
|
||||||
v_y += gravity;
|
player.vel_y += gravity;
|
||||||
|
|
||||||
x += v_x;
|
player.x += player.vel_x;
|
||||||
y += v_y;
|
player.y += player.vel_y;
|
||||||
|
|
||||||
if y > 290.0 {
|
if player.y > 290.0 {
|
||||||
y = 290.0;
|
player.y = 290.0;
|
||||||
v_y = 0.0;
|
player.vel_y = 0.0;
|
||||||
|
|
||||||
on_ground = true;
|
on_ground = true;
|
||||||
}
|
}
|
||||||
@@ -99,11 +114,7 @@ fn main() {
|
|||||||
let _ = renderer.set_draw_color(sdl2::pixels::Color::RGB(0, 0, 0));
|
let _ = renderer.set_draw_color(sdl2::pixels::Color::RGB(0, 0, 0));
|
||||||
let _ = renderer.clear();
|
let _ = renderer.clear();
|
||||||
|
|
||||||
player.x = x as i32;
|
player.render(&renderer);
|
||||||
player.y = y as i32;
|
|
||||||
|
|
||||||
let _ = renderer.set_draw_color(sdl2::pixels::Color::RGB(0, 255, 0));
|
|
||||||
let _ = renderer.fill_rect(&player);
|
|
||||||
|
|
||||||
renderer.present();
|
renderer.present();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user