change window dep from piston to minifb
This commit is contained in:
parent
4620f647ad
commit
3844c0fe80
5 changed files with 728 additions and 1079 deletions
71
src/main.rs
71
src/main.rs
|
@ -1,19 +1,30 @@
|
|||
extern crate piston_window;
|
||||
use piston_window::*;
|
||||
// extern crate piston_window;
|
||||
// use piston_window::*;
|
||||
|
||||
extern crate minifb;
|
||||
use minifb::{Key, Window, WindowOptions};
|
||||
|
||||
mod engine;
|
||||
use engine::Tile;
|
||||
|
||||
const WIDTH: usize = 320;
|
||||
const HEIGHT: usize = 240;
|
||||
|
||||
fn main() {
|
||||
let mut window: PistonWindow =
|
||||
WindowSettings::new("Rustenstein", [320, 240])
|
||||
.exit_on_esc(true)
|
||||
.resizable(false)
|
||||
.build()
|
||||
.unwrap_or_else(|e| { panic!("Failed to build PistonWindow: {}", e) });
|
||||
let mut buffer: Vec<u32> = vec![0; WIDTH * HEIGHT];
|
||||
|
||||
let mut engine = engine::Engine::new(window.size());
|
||||
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)));
|
||||
|
||||
let (width, height) = window.get_size();
|
||||
let mut engine = engine::Engine::new(width, height);
|
||||
|
||||
#[rustfmt::skip]
|
||||
let tiles = vec![
|
||||
Tile::Wall, Tile::Wall, Tile::Wall, Tile::Wall, Tile::Wall,
|
||||
Tile::Wall, Tile::Empty, Tile::Empty, Tile::Empty, Tile::Wall,
|
||||
|
@ -24,27 +35,33 @@ fn main() {
|
|||
let level = engine::Level {
|
||||
width: 5,
|
||||
height: 5,
|
||||
tiles
|
||||
tiles,
|
||||
};
|
||||
engine.load_level(level);
|
||||
|
||||
while let Some(event) = window.next() {
|
||||
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),
|
||||
_ => (),
|
||||
};
|
||||
};
|
||||
|
||||
window.draw_2d(&event, |context, graphics, _device| {
|
||||
engine.render(context, graphics);
|
||||
});
|
||||
|
||||
if let Some(args) = event.update_args() {
|
||||
engine.update(args.dt);
|
||||
while window.is_open() && !window.is_key_down(Key::Escape) {
|
||||
for i in buffer.iter_mut() {
|
||||
*i = 0; // write something more funny here!
|
||||
}
|
||||
|
||||
// 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();
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue