diff options
Diffstat (limited to 'src/main.rs')
| -rw-r--r-- | src/main.rs | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/src/main.rs b/src/main.rs new file mode 100644 index 0000000..4c6ce8f --- /dev/null +++ b/src/main.rs @@ -0,0 +1,42 @@ +extern crate sdl2; + +use sdl2::event::Event; +use sdl2::keyboard::Keycode; +use sdl2::pixels::Color; +use sdl2::rect::Point; + +pub mod boid; +use boid::Boid; + +fn main() { + let sdl = sdl2::init().unwrap(); + let video_subsys = sdl.video().unwrap(); + + let window = video_subsys.window("boids", 640, 480).build().unwrap(); + let mut canvas = window.into_canvas().build().unwrap(); + + let mut b = Boid::new(Point::new(50, 50)); + + let mut event_pump = sdl.event_pump().unwrap(); + 'main: loop { + for event in event_pump.poll_iter() { + match event { + Event::Quit { .. } | + Event::KeyDown { keycode: Some(Keycode::Q), .. } | + Event::KeyDown { keycode: Some(Keycode::Escape), .. } + => break 'main, + _ => {}, + } + } + canvas.set_draw_color(Color::RGB(0, 0, 0)); + canvas.clear(); + canvas.set_draw_color(Color::RGB(200, 200, 200)); + b.draw(&mut canvas); + + canvas.present(); + + b.step(); + + std::thread::sleep(std::time::Duration::new(0, 50_000_000)); + } +} |
