diff --git a/chapter10/src/assets/characters/characters.ron b/chapter10/src/assets/characters/characters.ron index 5779c76..a78cfe8 100644 --- a/chapter10/src/assets/characters/characters.ron +++ b/chapter10/src/assets/characters/characters.ron @@ -14,7 +14,8 @@ animations: { Walk: ( start_row: 8, - frame_count: 9, + start_column: 1, + frame_count: 8, frame_time: 0.1, directional: true, ), @@ -46,7 +47,8 @@ animations: { Walk: ( start_row: 8, - frame_count: 9, + start_column: 1, + frame_count: 8, frame_time: 0.1, directional: true, ), @@ -78,7 +80,8 @@ animations: { Walk: ( start_row: 8, - frame_count: 9, + start_column: 1, + frame_count: 8, frame_time: 0.1, directional: true, ), @@ -110,7 +113,8 @@ animations: { Walk: ( start_row: 8, - frame_count: 9, + start_column: 1, + frame_count: 8, frame_time: 0.1, directional: true, ), @@ -142,7 +146,8 @@ animations: { Walk: ( start_row: 8, - frame_count: 9, + start_column: 1, + frame_count: 8, frame_time: 0.1, directional: true, ), @@ -174,7 +179,8 @@ animations: { Walk: ( start_row: 8, - frame_count: 9, + start_column: 1, + frame_count: 8, frame_time: 0.1, directional: true, ), diff --git a/chapter10/src/characters/animation.rs b/chapter10/src/characters/animation.rs index 540f1e9..063f021 100644 --- a/chapter10/src/characters/animation.rs +++ b/chapter10/src/characters/animation.rs @@ -23,8 +23,8 @@ pub struct AnimationClip { } impl AnimationClip { - pub fn new(row: usize, frame_count: usize, atlas_columns: usize) -> Self { - let first = row * atlas_columns; + pub fn new(row: usize, column_offset: usize, frame_count: usize, atlas_columns: usize) -> Self { + let first = (row * atlas_columns) + column_offset; Self { first, last: first + frame_count - 1, @@ -67,7 +67,7 @@ impl AnimationController { def.start_row }; - Some(AnimationClip::new(row, def.frame_count, config.atlas_columns)) + Some(AnimationClip::new(row, def.start_column, def.frame_count, config.atlas_columns)) } } diff --git a/chapter10/src/characters/config.rs b/chapter10/src/characters/config.rs index 81b8267..5fdc4a7 100644 --- a/chapter10/src/characters/config.rs +++ b/chapter10/src/characters/config.rs @@ -14,6 +14,8 @@ pub enum AnimationType { #[derive(Debug, Clone, Serialize, Deserialize)] pub struct AnimationDefinition { pub start_row: usize, + #[serde(default)] + pub start_column: usize, pub frame_count: usize, pub frame_time: f32, pub directional: bool, // true = 4 rows (one per direction), false = 1 row