Мне нужна помощь в спасении проекта, касающегося экстремального управления глубиной. У нас нет идей!
Проект касается укладки ящиков разных размеров, каждый из которых изометричен - так, чтобы глубина играла (нам нужно сплести этот ящик перед этим ящиком, но поверх двух ящиков и ниже другого, и т. Д.) - все идет!)
Вот проект в его нынешнем виде:
http://clearlytrained.com/depth/
Вы можете перетащить прямоугольники, затем отпустить по сетке, если пространство сетки зеленое - если вы возьмете два прямоугольника, занимающих одно пространство сетки, поместите их рядом с друг другом, а затем возьмите более широкое поле (2x2) и поместите его поверх обоих (так, чтобы промежуток в двух нижних полях находился посередине прямоугольника, который вы поместили сверху), вы увидите, что глубина крайне правого нижнего прямоугольника теперь выше и выше прямоугольника сверху. Я полностью понимаю, почему это происходит, но независимо от того, как мы проведем по сетке по порядку, это будет происходить до некоторой степени в том виде, в каком оно сейчас стоит.
То, как мы в настоящее время сортируем глубину, заключается в просмотре массива сетки, в котором хранится имя каждого блока на экране, в зависимости от направления, которое мы проводим по строкам и столбцам, мы получаем порядок, который мы затем устанавливаем для каждого из них. глубина коробки Проблема в том, что хотя блок может занимать 6 пространств сетки, мы не устанавливаем глубину 6 раз - мы устанавливаем его только при первом обращении к имени его экземпляра в массиве - поэтому, если мы просматриваем сетка снизу вверх, слева направо, блок, который физически находится под другим блоком, но далее справа всегда будет иметь большую глубину. не хорошо!
Единственный способ, как я могу это исправить, это выяснить, какое-то сравнение между блоками для первых значений X, а затем для Y, установить некое подобие типа double для условий цикла / состояния и, более или менее, программно вручную устанавливайте глубину каждого ящика каждый раз, когда мы перемещаемся, или помещаем новый ящик. Таким образом, сложность заключается в том, чтобы установить глубину по порядку имени экземпляра блока, сравнить это поле с каждым другим блоком, затем с каждым другим блоком с каждым другим блоком и найти реальный порядок, который нам необходим для суммирования их глубины. В некоторых случаях мы можем перейти слева направо, затем снизу вверх, а затем обратно слева направо - нет плавного рисунка.
Пожалуйста, поиграйте с предоставленной ссылкой, дайте мне знать, если у вас есть какие-либо вопросы или вам нужна дополнительная информация, я в отчаянии!