Expose sprite position
This commit is contained in:
parent
3f2ba9285d
commit
ea8da5e990
|
@ -122,6 +122,10 @@ impl Sprite {
|
||||||
pub fn angle(&mut self, angle: f64) {
|
pub fn angle(&mut self, angle: f64) {
|
||||||
self.angle = angle;
|
self.angle = angle;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn position(&self) -> (i32, i32) {
|
||||||
|
self.rect.center().into()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub struct Game {
|
pub struct Game {
|
||||||
|
|
12
src/main.rs
12
src/main.rs
|
@ -8,6 +8,14 @@ fn main() {
|
||||||
game.run(|canvas, event_pump| {
|
game.run(|canvas, event_pump| {
|
||||||
i = (i + 1.0) % 360.0;
|
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 {
|
for event in event_pump {
|
||||||
match event {
|
match event {
|
||||||
Event::Quit { .. }
|
Event::Quit { .. }
|
||||||
|
@ -30,8 +38,8 @@ fn main() {
|
||||||
_ => {}
|
_ => {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
s.angle(i);
|
|
||||||
s.draw(canvas).unwrap();
|
s.draw(canvas).unwrap();
|
||||||
})
|
})
|
||||||
.unwrap();
|
.unwrap();
|
||||||
|
|
Loading…
Reference in a new issue