2017-10-01 22:13:34 +02:00
|
|
|
extern crate piston_window;
|
|
|
|
use piston_window::*;
|
|
|
|
|
2020-03-12 17:54:31 +01:00
|
|
|
mod engine;
|
|
|
|
use engine::Tile;
|
2017-10-01 22:13:34 +02:00
|
|
|
|
|
|
|
fn main() {
|
|
|
|
let mut window: PistonWindow =
|
|
|
|
WindowSettings::new("Rustenstein", [640, 480])
|
|
|
|
.exit_on_esc(true)
|
|
|
|
.resizable(false)
|
2020-03-09 18:30:06 +01:00
|
|
|
.build()
|
|
|
|
.unwrap_or_else(|e| { panic!("Failed to build PistonWindow: {}", e) });
|
2017-10-01 22:13:34 +02:00
|
|
|
|
2020-03-12 17:54:31 +01:00
|
|
|
let mut engine = engine::Engine::new(window.size());
|
|
|
|
|
|
|
|
let tiles = vec![
|
2017-10-01 22:13:34 +02:00
|
|
|
Tile::Wall, Tile::Wall, Tile::Wall, Tile::Wall, Tile::Wall,
|
|
|
|
Tile::Wall, Tile::Empty, Tile::Empty, Tile::Empty, Tile::Wall,
|
|
|
|
Tile::Wall, Tile::Empty, Tile::Empty, Tile::Empty, Tile::Wall,
|
|
|
|
Tile::Wall, Tile::Empty, Tile::Empty, Tile::Empty, Tile::Wall,
|
|
|
|
Tile::Wall, Tile::Wall, Tile::Wall, Tile::Wall, Tile::Wall,
|
|
|
|
];
|
2020-03-12 17:54:31 +01:00
|
|
|
let level = engine::Level {
|
|
|
|
width:5,
|
|
|
|
height: 5,
|
|
|
|
tiles
|
|
|
|
};
|
|
|
|
engine.load_level(level);
|
2017-10-01 22:13:34 +02:00
|
|
|
|
|
|
|
while let Some(event) = window.next() {
|
2020-03-31 15:14:12 +02:00
|
|
|
if let Some(Button::Keyboard(key)) = event.press_args() {
|
|
|
|
match key {
|
|
|
|
Key::W => engine.add_movement(engine::Movement::Forward),
|
|
|
|
Key::S => engine.add_movement(engine::Movement::Backward),
|
|
|
|
Key::A => engine.add_movement(engine::Movement::TurnLeft),
|
|
|
|
Key::D => engine.add_movement(engine::Movement::TurnRight),
|
|
|
|
_ => (),
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2020-03-12 17:54:31 +01:00
|
|
|
window.draw_2d(&event, |context, graphics, _device| {
|
2017-10-22 22:22:49 +02:00
|
|
|
engine.render(context, graphics);
|
2017-10-01 22:13:34 +02:00
|
|
|
});
|
2020-03-31 15:14:12 +02:00
|
|
|
|
|
|
|
if let Some(args) = event.update_args() {
|
|
|
|
engine.update(args.dt);
|
|
|
|
}
|
|
|
|
|
2017-10-01 22:13:34 +02:00
|
|
|
}
|
|
|
|
}
|