Moves box by (dx, dy), one axis at a time, stopping flush against the edge of the
first solid tile it would otherwise enter rather than tunnelling through it at high
speed. Axis separation (resolve the whole x move, then the whole y move against the
already-resolved x) is the standard, simple choice for an axis-aligned tile grid - a full
swept-AABB solver buys nothing here since every tile edge is already axis-aligned.
Moves
boxby(dx, dy), one axis at a time, stopping flush against the edge of the first solid tile it would otherwise enter rather than tunnelling through it at high speed. Axis separation (resolve the whole x move, then the whole y move against the already-resolved x) is the standard, simple choice for an axis-aligned tile grid - a full swept-AABB solver buys nothing here since every tile edge is already axis-aligned.