![]() |
Z сортировка
Вложений: 1
всем привет!
вопрос очень интересный! ответа немогу найти интересует вот что ! как сделать сортировку глубины ячеек карты вот код который делает карту 10х10 ячеек Код:
game = {};в опр. ячейках есть некий объект. если персанаж находится на ячейке ниже чем ячейка с объектом то персонаж покрывает объект. а если персонаж находиться над ячейкой с объектом то объект покрывает персонажа тоесть получаеться персонаж постоянно меняет свою глубину! есть вариант делать глубину ячейки по следующей схеме первая ячейка будет иметь глубину = 0 втарая = 10 треться 20 и т.д. а персонаж попадая на ячейку с глубиной = 10 будет иметь глубину =11 вопрос: как задавать глубину ячеек? и как персонажу постоянно менять глубину? всем спасибо. |
Читать про swapDepths
|
я тоже недавно такое делал, но не про персонажей :)
глубину задавал примерно так 0+d 1+d 2+d 3+d 4+d 5+d 6+d 7+d 8+d 9+d .... d это просто некот изнач глубина написал функцию GetDepths которая по i j находит глубину и потом если что надо менял swapDepths |
я вот тоже над подобным алгоритмом работал - только у меня задача, вроде, посложнее была: во-первых - проекция изометрическая, во-вторых - объекты на карте могут иметь размер больше 1-й клетки. пока не сделал на деревьях, ничего не получалось...
в Вашем же случае. как мне представляется, все достаточно просто. глубину ячейки определяете как Код:
(x+y*rows)*2когда персонаж заходит в ячейку, он получает высоту пола этой ячейки+1 - таким образом он автоматом будет над объектами, расположенными по y-1 - и под объектами на y+1 если я Вас правильно понял, конечно ;) |
я б задал каждому row свою глубину. Т.е. например все клетки cell.._1 имеют глубину 1, клетки cell.._2 - 3, клетки cell.._3 - 5. Суть в том, чтобы человечек, поднимаясь вверх или вниз ,также менял свою глубину на 2 (либо как-то узнавал глубину клетки на которой он стоит и прибавлял к её глубине единицу).
|
firelord спасибо !!! раскидал пол по твоей формуле только * на 5 =) что бы запас был побольше =)
ща делаю персанажа глубину ему буду брать от ячейки в которой он находиться +1 ... всем спасибо! |
| Часовой пояс GMT +4, время: 18:45. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.