Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.07.04;
Скачать: CL | DM;

Вниз

Спрайты...   Найти похожие ветки 

 
Destroyer   (2003-09-17 14:41) [0]

Подскажите пожалуйста как объяснить Delphi что некоторый спрайт должен находиться позади другого, т.к. он дальше чем другой


 
HoloCaust   (2003-09-17 14:48) [1]

Для этого существует координата Z


 
pasha_676 ©   (2003-09-17 14:49) [2]

Виртуальная координата Z. Чем она дальше от экрана - тем раньше отрисовывается спрайт.


 
HoloCaust   (2003-09-17 14:57) [3]

Если тебе необходимо распределить объекты на стандартной форме, то кликаешь по нему правой кнопкой мыши, выбираешь пункт Control, а далее - либо Bring To Front (вперед), либо Send To Back (назад)


 
Destroyer ©   (2003-09-17 15:00) [4]

А если спрайтов много... То тогда на все это будет уходить много времени. И как можно объяснить Делфи кто именно должен отрисовываться раньше. Заранее спасибо!


 
HoloCaust   (2003-09-17 15:13) [5]

Сначала скажи на чем ты пишешь, а еще всегда новые объекты отрисовываются поверх старых.


 
Darthman ©   (2003-09-17 16:08) [6]

var
 i : integer;
begin
 for z:=0 to zmax do
 for i:=0 to SpritesCount-1 do
 if sprite[i].z=z then sprite[i].draw;

и чего тут непонятного?


 
pasha_676 ©   (2003-09-17 16:10) [7]


> А если спрайтов много... То тогда на все это будет уходить
> много времени

Сортировка будет занимать меньше времени, чем вывод на экран. Гораздо меньше...

 Но можно конечно сделать "слоистую" систему. Допустим 10 слоев по Z. При перемещении объекта по Z он (вернее указатель на него) помещается в соответствующий слой. Потом инфа выводиться по слоям по принцыпу - дальний первый.
Так же можно объекты представить в виде связанного списка. При этом если объект перемещается по Z, то список разрывается, "дырка" связывается. Объект "ищит" по возрастанию куда вклиниться. Так что бы Z соседей была соответственно больше(равна) и меньше(равна). После чего произвести "врезку" в список. Кстати под вопросом будет ли это быстрее сортировки по возрастанию.


 
MeF88 ©   (2003-09-17 16:33) [8]

Кстати, применим ли к массиву спрайтов метод быстрой сортировки? И эффективно ли это? Хотя бы для той же z.


 
pasha_676 ©   (2003-09-17 16:55) [9]


> Кстати, применим ли к массиву спрайтов метод быстрой сортировки?
> И эффективно ли это? Хотя бы для той же z.

Ну сортируешь не спрайты же... А ссылки на объекты (которые включают в себя и сами спрайты конечно) по полю Z. Какая блин разница?


 
Ландграф Павел ©   (2003-09-17 19:16) [10]

Лучше еще при загрузке всех спрайтов создать массив с именами спрайтов и их значениями Y, потом сортируешь в порядке возрастания и выводишь на экран те, которые находятся в данный момент на экране, при динамическом создании спрайтов всего один раз при создании добавить новый элемент в массив и заново пересортировать, или просто посмотри как реализована .z координата в delphiX


 
***Мао Дзядун***   (2004-03-09 23:10) [11]

ААААААААААААА !!!!!!!!! Мне бы научится со спрайтами работать ............ :(((((



Страницы: 1 вся ветка

Текущий архив: 2004.07.04;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.049 c
1-1087430308
Артем К.
2004-06-17 03:58
2004.07.04
Рисование без мерцания?


1-1087299040
mmb
2004-06-15 15:30
2004.07.04
Как перехватить вывод в stdin из функции загруженной из DLL


1-1087461468
AlexXn
2004-06-17 12:37
2004.07.04
Регистренная Delphi или нет


3-1086629707
miwa
2004-06-07 21:35
2004.07.04
O collate в Interbase.


1-1087140140
killer
2004-06-13 19:22
2004.07.04
TreeView с возможностью выбора...