Add utility methods to SpriteCollection
This commit is contained in:
parent
8afa9e2485
commit
b1c40979df
38
src/lib.rs
38
src/lib.rs
|
@ -49,7 +49,7 @@
|
|||
//! }
|
||||
//! ```
|
||||
|
||||
use std::{cell::Cell, path::Path, ops::{DerefMut, Deref}};
|
||||
use std::{cell::Cell, path::Path, ops::{DerefMut, Deref}, slice::IterMut};
|
||||
|
||||
use sdl2::{
|
||||
image::ImageRWops,
|
||||
|
@ -265,6 +265,42 @@ impl SpriteCollection {
|
|||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
pub fn push(&mut self, s: Sprite) {
|
||||
self.v.push(s);
|
||||
}
|
||||
|
||||
pub fn insert(&mut self, s: Sprite, index: usize) {
|
||||
self.v.insert(index, s);
|
||||
}
|
||||
|
||||
pub fn pop(&mut self) -> Option<Sprite> {
|
||||
self.v.pop()
|
||||
}
|
||||
|
||||
pub fn remove(&mut self, index: usize) -> Sprite {
|
||||
self.v.remove(index)
|
||||
}
|
||||
|
||||
pub fn iter(&mut self) -> IterMut<'_, Sprite> {
|
||||
self.v.iter_mut()
|
||||
}
|
||||
|
||||
pub fn clear(&mut self) {
|
||||
self.v.clear();
|
||||
}
|
||||
|
||||
pub fn concat(&mut self, mut other: SpriteCollection) {
|
||||
self.v.append(&mut *other);
|
||||
}
|
||||
|
||||
pub fn len(&self) -> usize {
|
||||
self.v.len()
|
||||
}
|
||||
|
||||
pub fn get(&self, index: usize) -> Option<&Sprite> {
|
||||
self.v.get(index)
|
||||
}
|
||||
}
|
||||
|
||||
impl Deref for SpriteCollection {
|
||||
|
|
|
@ -39,7 +39,7 @@ fn main() {
|
|||
let angle = (y_diff as f64).atan2(x_diff as f64);
|
||||
s.set_angle(angle.to_degrees());
|
||||
|
||||
for spr in coll.iter_mut() {
|
||||
for spr in coll.iter() {
|
||||
let (start_x, start_y) = spr.position();
|
||||
let m = sdl2::mouse::MouseState::new(event_pump.as_ref());
|
||||
let x_diff = m.x() - start_x;
|
||||
|
@ -68,7 +68,7 @@ fn main() {
|
|||
|
||||
s.translate(offset);
|
||||
|
||||
for spr in coll.iter_mut() {
|
||||
for spr in coll.iter() {
|
||||
spr.translate(offset);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue