diff --git a/src/lib.rs b/src/lib.rs index 7946f2d..ee12e17 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -82,6 +82,7 @@ impl Iterator for Events { pub struct Sprite { rect: Rect, surf: Surface<'static>, + angle: f64, } impl Sprite { @@ -95,6 +96,7 @@ impl Sprite { Ok(Self { rect: dest_rect, surf, + angle: 0.0, }) } @@ -104,7 +106,7 @@ impl Sprite { canvas.fill_rect(None)?; canvas.clear(); - canvas.copy_ex(&text, None, self.rect, 0.0, None, false, false)?; + canvas.copy_ex(&text, None, self.rect, self.angle, None, false, false)?; Ok(()) } @@ -116,6 +118,10 @@ impl Sprite { self.rect.set_x(new_x); self.rect.set_y(new_y); } + + pub fn angle(&mut self, angle: f64) { + self.angle = angle; + } } pub struct Game { diff --git a/src/main.rs b/src/main.rs index db1b518..2b79393 100644 --- a/src/main.rs +++ b/src/main.rs @@ -3,8 +3,11 @@ use catbox::{Event, Game, Keycode, Sprite}; fn main() { let game = Game::new("catbox demo", 1000, 800); + let mut i = 0.0; let mut s = Sprite::new("duck.png", 500, 400).unwrap(); game.run(|canvas, event_pump| { + i = (i + 1.0) % 360.0; + for event in event_pump { match event { Event::Quit { .. } @@ -28,6 +31,7 @@ fn main() { } } + s.angle(i); s.draw(canvas).unwrap(); }) .unwrap();