Quick answer: Pygame collide_circle assuming rect inscribed circle? Inaccurate for non-square sprites - use collide_mask or implement a custom shape test.
Tall sprite (32x64) collide_circle uses 32-radius; misses upper half of the sprite.
Use collide_mask
Pixel-perfect; respects any shape. More expensive; accurate.
Or compute proper shape
For ellipsoids, custom 2D distance check. Math-based; cheap.
Match sprite to shape
Author tall sprites with circular bounds; or use rect collision for tall.
“Geometry primitives have implicit assumptions. Sprite-shape mismatch surfaces them.”
Pick the right primitive per gameplay need. Mixed primitives in the codebase confuse maintainers; pick deliberately.