Похоже на типичную проблему «Пули через бумагу».
Поскольку .move () не выполняет подшаг, вы просто не перекрываете другой прямоугольник, и поэтому не выполняете условие столкновения.
Проще говоря: вы «стираете» исходный прямоугольник и рисуете его заново в новой позиции.То же самое для другого прямоугольника.Они не перекрываются, потому что движение было слишком велико, поэтому столкновения не обнаружено.