Small refactor of Layer.

This commit is contained in:
2016-12-27 16:59:57 +01:00
parent f2b4e417e0
commit c9db5ba062
3 changed files with 39 additions and 50 deletions

View File

@@ -1,4 +1,3 @@
#[deny(trivial_casts, trivial_numeric_casts)]
extern crate sdl2;
extern crate sdl2_image;
@@ -17,6 +16,7 @@ use timer::Timer;
use game_object::GameObject;
use player_components::{PlayerPhysicsComponent, PlayerGraphicsComponent};
mod timer;
mod tile;
mod camera;
@@ -26,6 +26,7 @@ mod game_object;
mod component;
mod player_components;
const SCREEN_WIDTH : u32 = 960;
const SCREEN_HEIGHT : u32 = 640;
@@ -41,6 +42,7 @@ const PLAYER_ACCELERATION_X_START : f32 = 0.02;
const PLAYER_ACCELERATION_X_STOP : f32 = 0.15;
const PLAYER_ACCELERATION_X_CHANGE : f32 = 0.06;
#[derive(Clone)]
enum Tile<'a> {
Empty,
@@ -49,6 +51,7 @@ enum Tile<'a> {
Floor(Rect)
}
fn main() {
let sdl_context = sdl2::init().unwrap();
let video_subsystem = sdl_context.video().unwrap();
@@ -249,15 +252,11 @@ fn main() {
break;
}
if let Some(tile) = layer.get_tile(x, y) {
d = match *tile {
Tile::Floor(_) => d.min(t),
Tile::Static(_, solid) => if solid { d.min(t) } else { d },
_ => d
}
} else {
break;
}
d = match *layer.get_tile(x, y) {
Tile::Floor(_) => d.min(t),
Tile::Static(_, solid) => if solid { d.min(t) } else { d },
_ => d
};
x += 1;
}
@@ -285,15 +284,11 @@ fn main() {
break;
}
if let Some(tile) = layer.get_tile(x, y) {
d = match *tile {
Tile::Floor(_) => d.max(t),
Tile::Static(_, solid) => if solid { d.max(t) } else { d },
_ => d
}
} else {
break;
}
d = match *layer.get_tile(x, y) {
Tile::Floor(_) => d.max(t),
Tile::Static(_, solid) => if solid { d.max(t) } else { d },
_ => d
};
x -= 1;
}
@@ -323,15 +318,11 @@ fn main() {
break;
}
if let Some(tile) = layer.get_tile(x, y) {
d = match *tile {
Tile::Floor(_) => d.min(t),
Tile::Static(_, solid) => if solid { d.min(t) } else { d },
_ => d
}
} else {
break;
}
d = match *layer.get_tile(x, y) {
Tile::Floor(_) => d.min(t),
Tile::Static(_, solid) => if solid { d.min(t) } else { d },
_ => d
};
y += 1;
}
@@ -363,15 +354,11 @@ fn main() {
break;
}
if let Some(tile) = layer.get_tile(x, y) {
d = match *tile {
Tile::Floor(_) => d.max(t),
Tile::Static(_, solid) => if solid { d.max(t) } else { d },
_ => d
}
} else {
break;
}
d = match *layer.get_tile(x, y) {
Tile::Floor(_) => d.max(t),
Tile::Static(_, solid) => if solid { d.max(t) } else { d },
_ => d
};
y -= 1;
}