Мне нужно сделать drag'n drop со столкновениями.
У меня есть два прямоугольника, один из которых передвигается мышкой по экрану.

Мне нужно сделать так, что при столкновении его с другим прямоугольником происходило следующее:
В зависимости от стороны, с которой он столкнулся выбиралось его местоположение. Допустим прямоугольник 1 столкнулся с левой стороной прямоугольника 2

Нужно, чтобы его отодвигало влево на столько, чтобы он с прямоугольником 2 становился вплотную, тоже самое должно происходить с остальными сторонами, при этом прямоугольник 2 мы также можем двигать мышкой.