Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion arcade/sprite/animated.py
Original file line number Diff line number Diff line change
Expand Up @@ -357,4 +357,4 @@ def update_animation(self, delta_time: float = 1 / 60) -> None:
logger.warning("Error, no texture set")
else:
self.width = self._texture.width * self.scale_x
self.height = self._texture.height * self.scale_x
self.height = self._texture.height * self.scale_y
17 changes: 17 additions & 0 deletions tests/unit/sprite/test_sprite_animated_walking.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,23 @@
frame_count = 0


def test_update_animation_preserves_scale_y():
# update_animation must size height from scale_y, not scale_x, so a
# non-uniform scale is preserved (regression: scale_y was clobbered).
texture = arcade.Texture.create_empty("test-scale", (10, 20))
sprite = arcade.AnimatedWalkingSprite(scale=(2.0, 3.0))
sprite.stand_right_textures = [texture]
sprite.texture = texture
sprite.change_x = 0
sprite.change_y = 0

sprite.update_animation()

assert tuple(sprite.scale) == (2.0, 3.0)
assert sprite.width == 20.0
assert sprite.height == 60.0


def test_sprite_animated_old(window: arcade.Window):
global frame_count
frame_count = 0
Expand Down