Expose sprite position

This commit is contained in:
Yash Karandikar 2022-03-09 11:59:04 -06:00
parent 3f2ba9285d
commit ea8da5e990
Signed by: karx
GPG key ID: A794DA2529474BA5
2 changed files with 14 additions and 2 deletions

View file

@ -122,6 +122,10 @@ impl Sprite {
pub fn angle(&mut self, angle: f64) {
self.angle = angle;
}
pub fn position(&self) -> (i32, i32) {
self.rect.center().into()
}
}
pub struct Game {

View file

@ -8,6 +8,14 @@ fn main() {
game.run(|canvas, event_pump| {
i = (i + 1.0) % 360.0;
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);
s.angle(angle.to_degrees());
for event in event_pump {
match event {
Event::Quit { .. }
@ -30,8 +38,8 @@ fn main() {
_ => {}
}
}
s.angle(i);
s.draw(canvas).unwrap();
})
.unwrap();