Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- extern crate sdl2;
- use sdl2::pixels::Color;
- use sdl2::event::Event;
- use sdl2::rect::Rect;
- use sdl2::keyboard::Keycode;
- use sdl2::render::Renderer;
- use std::time::Duration;
- const SCR_WIDTH: u32 = 800;
- const SCR_HEIGHT: u32 = 800;
- const BLACK: Color = Color::RGB(0, 0, 0);
- const WHITE: Color = Color::RGB(255, 255, 255);
- const SQR_SIZE: u32 = SCR_WIDTH / 8;
- fn main() {
- let context = sdl2::init().unwrap();
- let video = context.video().unwrap();
- let window = match video
- .window("Chess", SCR_WIDTH, SCR_HEIGHT)
- .position_centered()
- .opengl()
- .build() {
- Ok(window) => window,
- Err(err) => panic!("failed to create window: {}", err)
- };
- let mut renderer = match window
- .renderer()
- .build() {
- Ok(renderer) => renderer,
- Err(err) => panic!("failed to create renderer: {}", err)
- };
- let mut event_pump = context.event_pump().unwrap();
- 'main_loop: loop {
- draw_grid(&mut renderer);
- for event in event_pump.poll_iter() {
- // if esc or q pressed, exit main loop
- // (consequently ending the program)
- match event {
- Event::Quit {..} |
- Event::KeyDown { keycode: Some(Keycode::Q), .. } => {
- break 'main_loop
- },
- _ => {}
- }
- // draw frames (swap buffers & company)
- renderer.present();
- // ::std::thread::sleep(Duration::new(0, 1_000_000_000u32 / 60));
- }
- }
- }
- fn draw_grid(renderer: &mut Renderer) {
- renderer.set_draw_color(BLACK);
- renderer.clear();
- // draw squares (only the white ones since the black ones are part of background)
- renderer.set_draw_color(WHITE);
- let a = Rect::new(10, 10, 10, 10);
- let _ = renderer.fill_rect(a);
- for i in (0..=(SCR_WIDTH - SQR_SIZE)).step_by(SQR_SIZE as usize) {
- let sqr = Rect::new(i as i32, i as i32, i + SQR_SIZE, i + SQR_SIZE);
- let _ = renderer.fill_rect(sqr);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement