From d06bfb0dff337dedee5eac7694d4b08b24460d15 Mon Sep 17 00:00:00 2001 From: lokman928 Date: Sun, 12 Apr 2026 21:30:11 +0800 Subject: [PATCH] fix: angle negation for Pymunk physics engine to ensure correct sprite rotation --- arcade/pymunk_physics_engine.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arcade/pymunk_physics_engine.py b/arcade/pymunk_physics_engine.py index 7fae8a926..43e53dbc8 100644 --- a/arcade/pymunk_physics_engine.py +++ b/arcade/pymunk_physics_engine.py @@ -266,7 +266,7 @@ def add_sprite( # Set the body's position body.position = pymunk.Vec2d(sprite.center_x, sprite.center_y) - body.angle = math.radians(sprite.angle) + body.angle = math.radians(-sprite.angle) # Callback used if we need custom gravity, damping, velocity, etc. def velocity_callback( @@ -514,7 +514,7 @@ def set_rotation(self, sprite: Sprite, rotation: float) -> None: raise PymunkException( "Tried to set a rotation, but this physics object has no 'body' set." ) - physics_object.body.angle = math.radians(rotation) + physics_object.body.angle = math.radians(-rotation) def set_velocity(self, sprite: Sprite, velocity: tuple[float, float]) -> None: """Directly set the velocity of a sprite known to the engine.