Add ability to set a sprite's angle
This commit is contained in:
parent
9d0ce1aafb
commit
c75e2ded4c
|
@ -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 {
|
||||
|
|
|
@ -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();
|
||||
|
|
Loading…
Reference in a new issue