mirror of
https://github.com/Xevion/Pac-Man.git
synced 2025-12-14 02:12:26 -06:00
docs: document many major functions, types, enums for important functionality
This commit is contained in:
@@ -1,11 +1,19 @@
|
||||
use crate::error::{AnimatedTextureError, GameError, GameResult, TextureError};
|
||||
use crate::texture::sprite::AtlasTile;
|
||||
|
||||
/// Frame-based animation system for cycling through multiple sprite tiles.
|
||||
///
|
||||
/// Manages automatic frame progression based on elapsed time.
|
||||
/// Uses a time banking system to ensure consistent animation speed regardless of frame rate variations.
|
||||
#[derive(Debug, Clone)]
|
||||
pub struct AnimatedTexture {
|
||||
/// Sequence of sprite tiles that make up the animation frames
|
||||
tiles: Vec<AtlasTile>,
|
||||
/// Duration each frame should be displayed (in seconds)
|
||||
frame_duration: f32,
|
||||
/// Index of the currently active frame in the tiles vector
|
||||
current_frame: usize,
|
||||
/// Accumulated time since the last frame change (for smooth timing)
|
||||
time_bank: f32,
|
||||
}
|
||||
|
||||
@@ -25,6 +33,16 @@ impl AnimatedTexture {
|
||||
})
|
||||
}
|
||||
|
||||
/// Advances the animation by the specified time delta with automatic frame cycling.
|
||||
///
|
||||
/// Accumulates time in the time bank and progresses through frames when enough
|
||||
/// time has elapsed. Supports frame rates independent of game frame rate by
|
||||
/// potentially advancing multiple frames in a single call if `dt` is large.
|
||||
/// Animation loops automatically when reaching the final frame.
|
||||
///
|
||||
/// # Arguments
|
||||
///
|
||||
/// * `dt` - Time elapsed since the last tick (typically frame delta time)
|
||||
pub fn tick(&mut self, dt: f32) {
|
||||
self.time_bank += dt;
|
||||
while self.time_bank >= self.frame_duration {
|
||||
|
||||
Reference in New Issue
Block a user