catbox/src/main.rs

49 lines
1.5 KiB
Rust
Raw Normal View History

2022-03-13 13:21:13 -05:00
use cat_box::{Event, Game, Keycode, Sprite};
fn main() {
let game = Game::new("catbox demo", 1000, 800);
2022-03-09 11:37:10 -06:00
let mut i = 0.0;
2022-03-07 13:10:06 -06:00
let mut s = Sprite::new("duck.png", 500, 400).unwrap();
let mut s2 = Sprite::new("duck.png", 400, 500).unwrap();
2022-03-14 12:32:42 -05:00
game.run(|ctx, event_pump| {
2022-03-09 11:37:10 -06:00
i = (i + 1.0) % 360.0;
2022-03-15 11:36:33 -05:00
ctx.set_background_colour(i as u8, 64, 255);
2022-03-09 11:37:10 -06:00
2022-03-09 11:59:04 -06:00
let (start_x, start_y) = s.position();
let m = sdl2::mouse::MouseState::new(event_pump.as_ref());
let x_diff = m.x() - start_x;
let y_diff = m.y() - start_y;
let angle = (y_diff as f64).atan2(x_diff as f64);
2022-03-09 11:59:41 -06:00
s.set_angle(angle.to_degrees());
2022-03-09 11:59:04 -06:00
for event in event_pump {
match event {
2022-03-06 13:08:05 -06:00
Event::Quit { .. }
| Event::KeyDown {
keycode: Some(Keycode::Escape),
..
} => game.terminate(),
2022-03-07 12:58:02 -06:00
Event::KeyDown { keycode, .. } => {
let offset = match keycode.unwrap() {
Keycode::W | Keycode::Up => (0, 5),
Keycode::S | Keycode::Down => (0, -5),
Keycode::A | Keycode::Left => (-5, 0),
Keycode::D | Keycode::Right => (5, 0),
2022-03-07 13:00:51 -06:00
_ => (0, 0),
2022-03-07 12:58:02 -06:00
};
s.translate(offset);
}
_ => {}
}
}
2022-03-09 11:59:41 -06:00
s2.draw(ctx).unwrap();
2022-03-14 12:32:42 -05:00
s.draw(ctx).unwrap();
2022-03-06 13:08:05 -06:00
})
.unwrap();
}