Credit to @awesome-llama-test for the source project and these notes. - A simple demonstration of a sprite rotating to a target direction, the direction here being to the mouse-pointer. - To find the signed difference in two directions, do: ((((target_direction - direction) + 180) mod 360) - 180) - This works correctly for all pairs of angles and will always return the difference closest to 0 (no difference greater than 180 or smaller than -180). - Changes made by me (@grandpasp): Now with Angular Velocity proportional to difference in direction. Thanks to @Chirover for the idea (and valiant attempt) to do this.