|
|
|||||
Сортировка объектов по глубине
Привет!Есть вопрос - как отсортировать объекты, по глубине на основе их положения по вертикали? Т.е. создать некий эффект перспективы - чем выше объект - тем дальше он по глубине. Вся трудность состоит в том, что объекты генерируются случайным образом и координаты каждого нового объекта не известны!
|
|
|||||
Регистрация: Feb 2007
Сообщений: 563
|
Привет! Есть ответ - сначала узнать координаты нового объекта, затем расположить его по координате z на нужную глубину и применить z-sorting, в нете полно примеров халявных классов!
|
|
|||||
Цитата:
__________________
...вселенская грусть |
|
|||||
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
1. Все объекты при создании загоняются в массив
2. Создаем новый объект (но не выводим на сцену) и тоже кладем в массив 3. Сортируем массив (чтобы индексы соответствовали порядку показа по z) 4. Показываем созданный объект - он появится как надо |
|
|||||
To mikhailk:
Получается надо создать 2 массива? А что если создать 1 массив с объектами, которые необходимо размещать, а второй - с координатами этих же объектов по оси Y? Получается тогда нужно сортировать уже второй массив при помощи sort(16)? А значения индексов присваивать элементам первого массива - arr1.setChildIndex(arr1[i], arrY[i])...как то так? |
|
|||||
Регистрация: Feb 2007
Сообщений: 563
|
а можно вопрос? Вы какого именно эффекта хотите добиться? Вот такой подойдет -
http://kosulin.ru/newsite/newsite.html#/graphics ? |
|
|||||
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
массив один
В примере personages - массив мувиков, болтающихся по сцене, containerObjects - контейнер, в котором они все находятся. |
|
|||||
.
|
Все объекты у Вас имеют x = y = 0; (по умолчанию); Как Вы собираетесь их сортировать? Хотя, можно сортировать по размерам ). А может мы просто не знаем Ваших критериев сортировки. Объясните.
|
|
|||||
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
Если я правильно понял автора с его вопросом, то объекты генерятся и случайным образом помещаются на сцену. Т.е., координаты у них есть (а как иначе?), просто не известны заранее.
Функция zSort (принадлежит не мне, я лишь добавил сортировку по name, чтобы убрать мерцание двух объектов с одним y) запускается по событию enterFrame или по таймеру. Новый объект после генерации падает в массив и включается в сортировку. Вот дополнительно к коду функции zSort (чтобы было понятно, как заполняется массив для сортировки): |
Часовой пояс GMT +4, время: 18:50. |
|
« Предыдущая тема | Следующая тема » |
|
|