Я сделал что-то похожее на это. Что вы делаете, это onDrop добавляете цели (x,x + object.width)
и (y,y + object.height)
в массив. До этого, если массив не является нулевым, проверьте, находится ли значение вашего нового объекта x или y в пределах существующего диапазона в массиве. Если это так, не разрешайте сброс, иначе разрешите сброс. Все изображения, независимо от «изображения», представляют собой квадраты / прямоугольники, поэтому это предотвратит наложение. Однако, если у вас есть сложные картинки (то есть круги / шестиугольники) и вы пытаетесь соединить края вместе, этот метод не будет работать.