Когда вы создаете новые объекты, будь то окна, карты, фигуры или изображения, которые можно перетаскивать, вы можете сохранять их в массиве «объектов, которые в данный момент не выбраны». Когда вы нажимаете на них или выбираете их или начинаете перетаскивать их, вы можете удалить их из массива «объекты не выбраны». Таким образом, вы можете контролировать, что может двигаться в случае определенного события mousedown или mousemove, проверяя, не выбран ли он. Если он выбран, он не будет находиться в массиве «не выбран», и вы можете перемещать указатель мыши над другими фигурами, перетаскивая фигуры, без их перетаскивания.
Создание массивов объектов, которые вы хотите перетащить, также помогает в иерархии. Канва рисует пиксели, принадлежащие первому объекту в последнюю очередь. Поэтому, если объекты находятся в массиве, вы просто переключаете их экземпляр, как в элементе массива, скажем, с objectArray [20] на objectArray [4], когда вы выполняете итерацию по массиву и рисуете объекты, хранящиеся в элементах массива, вы можете изменить, если другие объекты видны сверху или позади других объектов.