12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- use sdl2::pixels::Color;
- use sdl2::event::Event;
- use sdl2::keyboard::Keycode;
- use sdl2::render::WindowCanvas;
- use std::time::Duration;
-
- fn render(canvas: &mut WindowCanvas, color: Color) {
- canvas.set_draw_color(color);
- canvas.clear();
- canvas.present();
- }
-
- fn main() -> Result<(), String> {
- let sdl_context = sdl2::init()?;
- let video_subsystem = sdl_context.video()?;
-
- let window = video_subsystem.window("game tutorial", 800, 600)
- .position_centered()
- .build()
- .expect("could not initialize video subsystem");
-
- let mut canvas = window.into_canvas().build()
- .expect("could not make a canvas");
-
- let mut event_pump = sdl_context.event_pump()?;
- let mut i = 0;
- 'running: loop {
- for event in event_pump.poll_iter() {
- match event {
- Event::Quit {..} |
- Event::KeyDown { keycode: Some(Keycode::Escape), .. } => {
- break 'running;
- },
- _ => {}
- }
- }
-
- i = (i + 1) % 255;
-
- render(&mut canvas, Color::RGB(i, 64, 255-i));
-
- ::std::thread::sleep(Duration::new(0, 1_000_000_000u32 / 60));
- }
-
- Ok(())
- }
|