40 lines
882 B
Rust
40 lines
882 B
Rust
extern crate rand;
|
|
extern crate sdl2;
|
|
|
|
mod caster;
|
|
use caster::Caster;
|
|
|
|
use sdl2::event::Event;
|
|
use sdl2::keyboard::Keycode;
|
|
|
|
use std::error::Error;
|
|
use std::time::Duration;
|
|
|
|
pub fn run() -> Result<(), Box<dyn Error>> {
|
|
let sdl_context = sdl2::init()?;
|
|
let video_subsystem = sdl_context.video()?;
|
|
|
|
let mut caster = Caster::init(&video_subsystem, "Vash Caster", 800, 600)?;
|
|
|
|
let mut event_pump = sdl_context.event_pump()?;
|
|
|
|
'running: loop {
|
|
for event in event_pump.poll_iter() {
|
|
match event {
|
|
Event::Quit { .. }
|
|
| Event::KeyDown {
|
|
keycode: Some(Keycode::Escape),
|
|
..
|
|
} => break 'running,
|
|
_ => {}
|
|
}
|
|
}
|
|
|
|
caster.update()?;
|
|
|
|
::std::thread::sleep(Duration::new(0, 1_000_000_000u32 / 144));
|
|
}
|
|
|
|
Ok(())
|
|
}
|