est_render/gpu/texture/
sprite.rs1use crate::math::RectF;
2use super::Texture;
3
4pub struct Sprite {
5 pub texture: Texture,
6 texcoords: Vec<RectF>,
7 index: usize,
8
9 delay: f32,
10 elapsed: f32,
11}
12
13impl Sprite {
14 pub fn update(&mut self, dt: f32) {
15 self.elapsed += dt;
16 if self.elapsed >= self.delay {
17 self.elapsed = 0.0;
18 self.index = (self.index + 1) % self.texcoords.len();
19 }
20 }
21
22 pub fn reset(&mut self) {
23 self.index = 0;
24 self.elapsed = 0.0;
25 }
26
27 pub fn current_texcoords(&self) -> RectF {
28 self.texcoords[self.index]
29 }
30
31 pub fn texture(&self) -> &super::Texture {
32 &self.texture
33 }
34}