![]() |
Сортировка объектов по глубине
Привет!Есть вопрос - как отсортировать объекты, по глубине на основе их положения по вертикали? Т.е. создать некий эффект перспективы - чем выше объект - тем дальше он по глубине. Вся трудность состоит в том, что объекты генерируются случайным образом и координаты каждого нового объекта не известны!
|
Привет! Есть ответ - сначала узнать координаты нового объекта, затем расположить его по координате z на нужную глубину и применить z-sorting, в нете полно примеров халявных классов!
|
Цитата:
|
Цитата:
|
1. Все объекты при создании загоняются в массив
2. Создаем новый объект (но не выводим на сцену) и тоже кладем в массив 3. Сортируем массив (чтобы индексы соответствовали порядку показа по z) 4. Показываем созданный объект - он появится как надо |
To mikhailk:
Получается надо создать 2 массива? А что если создать 1 массив с объектами, которые необходимо размещать, а второй - с координатами этих же объектов по оси Y? Получается тогда нужно сортировать уже второй массив при помощи sort(16)? А значения индексов присваивать элементам первого массива - arr1.setChildIndex(arr1[i], arrY[i])...как то так? |
а можно вопрос? Вы какого именно эффекта хотите добиться? Вот такой подойдет -
http://kosulin.ru/newsite/newsite.html#/graphics ? |
массив один
Код AS3:
|
Цитата:
|
Если я правильно понял автора с его вопросом, то объекты генерятся и случайным образом помещаются на сцену. Т.е., координаты у них есть (а как иначе?), просто не известны заранее.
Функция zSort (принадлежит не мне, я лишь добавил сортировку по name, чтобы убрать мерцание двух объектов с одним y) запускается по событию enterFrame или по таймеру. Новый объект после генерации падает в массив и включается в сортировку. Вот дополнительно к коду функции zSort (чтобы было понятно, как заполняется массив для сортировки): Код AS3:
|
| Часовой пояс GMT +4, время: 01:27. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.