![]() |
Как сделать сортировку по координатам.
В общем проблема:я в данный момент делаю игру,и там появилась задача сделать так,чтобы юнит с меньшим y(ниже по экрану) всегда закрывал юнита с более высоким y(выше по экрану),как это сделать?Ведь обычно позднее созданный юнит закрывает ранее созданного,а мне это не нужно!=)
|
После знаков препинания ставится пробел.
|
окей, но это не очень помогает моей проблеме=)
|
1. сложить ссылки на все объекты в один массив
2. посортировать объекты в этом масссиве по свойству .y 3. поменять глубину каждого объекта согласно новой позиции в массиве |
Как вариант
Код AS3:
|
4. Разбить карту, на более на более мелкие зоны.
Но эта не лучшая идея, так как персонаж двигается, придется в каждом кадре, это повторять. Лучше двигать, персонажа по массиву (с координатой Y)и менять только глубину персонажа, там надо будет делать проверки, сделать это будет не просто, но можно. вот этой функцией менять глубину. setChildIndex(); С объектами примерно также, проверяешь координаты по Y, проверяешь, в какую ячейку массива он попадет, и ставишь объект на нужную глубину, все остальные объекты выше вставляемого объекта сами поменяют глубину. |
Цитата:
Вы выполняете правила и требования модераторов - вам помогают, а не наоборот. |
Я такой способ юзаю.
Код AS3:
Для увеличения скорости сортировки, можно менять глубину (в дисплей листе) только заданного объекта |
| Часовой пояс GMT +4, время: 13:08. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.