From 0120abe80648c0b9f78d1e6376166b8e5e2011a6 Mon Sep 17 00:00:00 2001 From: Xevion Date: Sat, 9 Sep 2023 21:01:31 -0500 Subject: [PATCH] feat: add optional offset to AnimatedTexture --- src/animation.rs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/animation.rs b/src/animation.rs index 087429f..cade874 100644 --- a/src/animation.rs +++ b/src/animation.rs @@ -10,6 +10,7 @@ pub struct AnimatedTexture<'a> { raw_texture: Texture<'a>, ticker: u32, reversed: bool, + offset: (i32, i32), ticks_per_frame: u32, frame_count: u32, frame_width: u32, @@ -23,6 +24,7 @@ impl<'a> AnimatedTexture<'a> { frame_count: u32, frame_width: u32, frame_height: u32, + offset: Option<(i32, i32)>, ) -> Self { AnimatedTexture { raw_texture: texture, @@ -32,6 +34,7 @@ impl<'a> AnimatedTexture<'a> { frame_count, frame_width, frame_height, + offset: offset.unwrap_or((0, 0)), } } @@ -71,7 +74,12 @@ impl<'a> AnimatedTexture<'a> { direction: Direction, ) { let frame_rect = self.get_frame_rect(); - let position_rect = Rect::new(position.0, position.1, self.frame_width, self.frame_height); + let position_rect = Rect::new( + position.0 + self.offset.0, + position.1 + self.offset.1, + self.frame_width, + self.frame_height, + ); canvas .copy_ex(