Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 2004.07.04;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.045 c
14-1087280962
DimKa
2004-06-15 10:29
2004.07.04
Сколько в кубометре байтов?


6-1083844687
Анонимщик
2004-05-06 15:58
2004.07.04
Вторичный поток, деструктор, TClientSocket


3-1086097611
KIR
2004-06-01 17:46
2004.07.04
АвтоФормат в pFIBDataSet


14-1087283897
AlexG
2004-06-15 11:18
2004.07.04
Как отконфигурировать БЫСТРО WinNT или WinXP?


14-1087270390
OFF
2004-06-15 07:33
2004.07.04
Sony DSC-V1 users guide.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский