rustenstein/src/main.rs

68 lines
2.2 KiB
Rust
Raw Normal View History

// extern crate piston_window;
// use piston_window::*;
extern crate minifb;
use minifb::{Key, Window, WindowOptions};
2017-10-01 22:13:34 +02:00
2020-03-12 17:54:31 +01:00
mod engine;
use engine::Tile;
2017-10-01 22:13:34 +02:00
const WIDTH: usize = 320;
const HEIGHT: usize = 240;
2017-10-01 22:13:34 +02:00
fn main() {
let mut buffer: Vec<u32> = vec![0; WIDTH * HEIGHT];
let mut window = Window::new("Rustenstein", WIDTH, HEIGHT, WindowOptions::default())
.unwrap_or_else(|e| {
panic!("{}", e);
});
// Limit to max ~60 fps update rate
window.limit_update_rate(Some(std::time::Duration::from_micros(16600)));
2017-10-01 22:13:34 +02:00
let (width, height) = window.get_size();
let mut engine = engine::Engine::new(width, height);
2020-03-12 17:54:31 +01:00
#[rustfmt::skip]
2020-03-12 17:54:31 +01:00
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 {
2020-04-03 17:12:33 +02:00
width: 5,
2020-03-12 17:54:31 +01:00
height: 5,
tiles,
2020-03-12 17:54:31 +01:00
};
engine.load_level(level);
2017-10-01 22:13:34 +02:00
while window.is_open() && !window.is_key_down(Key::Escape) {
for i in buffer.iter_mut() {
*i = 0; // write something more funny here!
2020-03-31 15:14:12 +02:00
}
// if let Some(Button::Keyboard(key)) = event.press_args() {
// match key {
// Key::W | Key::Up => engine.add_movement(engine::Movement::Forward),
// Key::S | Key::Down => engine.add_movement(engine::Movement::Backward),
// Key::A | Key::Left => engine.add_movement(engine::Movement::TurnLeft),
// Key::D | Key::Right => engine.add_movement(engine::Movement::TurnRight),
// _ => (),
// };
// };
engine.render(&mut buffer);
// if let Some(args) = event.update_args() {
// engine.update(args.dt);
// }
// We unwrap here as we want this code to exit if it fails.
// Real applications may want to handle this in a different way
window.update_with_buffer(&buffer, WIDTH, HEIGHT).unwrap();
2017-10-01 22:13:34 +02:00
}
}