Quick answer: Pygame blit(src, dest, area) with an area rect larger than the source surface? blit silently clips area to the source rect — you see less than expected.
A tile-atlas slicer uses computed area rects; some are slightly past the atlas edge and render as half-tiles.
Source Rect Bounds
blit’s area parameter is in source-surface coordinates. blit clips it to src.get_rect(). An area extending past the source draws only the overlap.
Validate Up-Front
if not src.get_rect().contains(area):
print("area out of source bounds", area)Catch atlas math errors early in dev. Clip yourself if intentional.
Pad Atlases
For repeating-edge atlases, add a 1-pixel border copy. Slight over-read still produces correct color, no clip artifacts.
subsurface for View
Instead of area param, create a subsurface and blit the whole thing: src.subsurface(area).blit(...). Same effect; arguably clearer.
Verifying
Atlas slices render at the requested size, no clipping. Edge cases (last column/row of atlas) render fully.
“blit clips area to source bounds. Validate or pad your atlases.”
Atlas-driven games should ship with an automated checker — computed source rects out of bounds is a common procedural-content bug.