in dnd, we treat diagonal movement on the grid as 5ft when it's really ~7. I just noticed my bird game has the exact same bug, my birds travel 40% faster on diagonals, and I am bad at thinking
just to nerd on this diagonal thing more, treating the hypotenuse of a right triangle as having a 1:1 ratio with the sides is 40% wrong. but if you need whole numbers (like for a pico 128x128 screen), 3:2 is only 5% off, much less noticeable. 7:5 is only 1% but moving 5 px at a time on a tiny screen is too jarring
my function for calculating average position was overflowing as if it's job was the overflow instead of calculate an average