38 lines
793 B
Rust
38 lines
793 B
Rust
extern crate rand;
|
|
extern crate sdl2;
|
|
|
|
mod caster;
|
|
use caster::Caster;
|
|
|
|
mod game_state;
|
|
use game_state::GameState;
|
|
|
|
mod event_handler;
|
|
|
|
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 event_pump = sdl_context.event_pump()?;
|
|
|
|
let mut gamestate = GameState::init();
|
|
let mut caster = Caster::init(video_subsystem, "Vash Caster", 800, 600)?;
|
|
|
|
while gamestate.running() {
|
|
event_handler::process_events(&mut event_pump, &mut gamestate);
|
|
gamestate.update();
|
|
caster.update(&gamestate)?;
|
|
|
|
::std::thread::sleep(Duration::new(0, 1_000_000_000u32 / 144));
|
|
}
|
|
|
|
Ok(())
|
|
}
|
|
|
|
struct Point {
|
|
x: i16,
|
|
y: i16,
|
|
}
|