![]() |
Изометрический мир, z сортировка
Если бы все объекты размером в 1 тайл, то тут все ясно как божий день, но проблема у объектов есть еще ширина и высота, и при ширине || высоте > 3 все перестает нормально работать.
Уже не знаю как высчитать рейтинг сортировки для объекта. Что дано, сам объект на сцене (sprite) ну и его данные у которых есть x y z width height (в координатах карты) при ширине высоте в 1 тайл индекс вычисляется как z * 1E5 + y + x * cell.width, надо чтобы нормально сортировались объекты с размером больше 2 тайлов по ширине или высоте. Допустим, есть 2 объекта 2*2 и 6*2 x|x|x|2|2|x x|x|x|2|2|x x|x|x|2|2|x x|x|x|2|2|x x|1|1|2|2|x x|1|1|2|2|x так вот объект 1 вылезает выше 2 |
ширина и высота объектов должны быть равны, чтобы простая сортировка работала корректно.
формула выглядит как-то так: w, h > 0 => z = x + w/2 + y + h/2 w = h = 0 => z = x + y но если хочется объекты, у которых размеры не равны, извольте попиксельно отрисовывать объекты. |
Спасибо.
|
| Часовой пояс GMT +4, время: 21:05. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.