Pull to refresh

Comments 2

Понятно, что перевод, но все же. Представленный способ сортировки крайне древний и имеет очень много ограничений к способу отрисовки графики (стоит добавить раскидистое дерево и все рухнет если не порезать всю графику ровно на размеры тейлов). Стоило бы озвучить множество ограничений.

Кстати, приведенный пример с движением создает в статье столько проблем, хотя почти во всех изометрических движках давно решается одной строчкой.

//TempView.sortOn(["z", "y", "x"], Array.NUMERIC);
TempView.sortOn(["y", "z", "x"], Array.NUMERIC);


Где координаты x, y — положение «основания» графики на экране, для тейла — это центр тейла, для человечка — между стоп. z — высота положения объекта в логических координатах 3D пространства (Например, для тейлов = 0, для предметов на поверхности тейлов = 0.01).

Но универсального способа в изометрии не существует, у этого тоже есть случаи неверной сортировки, поэтому закомментирована строка с альтернативной сортировкой, а вообще способ сортировки и нарезки тейлов подбирается по игре и по силам. Есть ведь и большие объекты — в 4, в 16 тейлов, не все красиво в 1 кубик лезет, а если не лезет, то будут проблемы и ограничения.
Может я задачу неправильно понял, но почему не умножить координаты каждого объекта на матрицу преобразования в экранные координаты и потом отсортировать по оси, перпендикулярной экрану?
Sign up to leave a comment.

Articles