Цитата:
|
Все статические объекты могут быть произвольного размера и высоты, но прямоугольные(тоесть 2*3 или 4*8 или 5*5 или 1*1 и.т.д)
|
Может метод из OpenSpace прокатить (ссылка в пред. посте), потребуется на 2 части каждый объект спец. образом разрезать и назначить для каждой части правильную точку привязки, по которой она будет сортироваться
(1x1 резать на 2 части конечно не надо)
Цитата:
|
expl, я не совсем понял ваш алгоритм, можно поподробнее
|
Суть в чем: определить какой из 2-х объектов нужно рисовать первым не всегда можно определить
анализируя только эти 2 объекта,
порядок зависит от того что и как вклинено между ними
Использовалась такая функция:

Код AS1/AS2:
Unit::moreThan(unit:Unit):Boolean {
var d:Number=0.5;//малое число, уже не помню зачем, защита от погрешностей каких-то
return x+d > unit.x + unit.sizeX || y + d > unit.y+unit.sizeY;//если true, то объект расположен ближе к наблюдателю, и порядок не соответствует
//нужно поменять объекты местами
//если false - то толи он дальше, толи нельзя точно сказать - ничего не делаем
}
Вобщем при прогоне пузырька с этой функцией получался требуемый результат
Но у вас тут более частный случай:
Движутся объекты 1*1.
Значит если метод OpenSpace не прокатит - должны быть способы соптимизировать алгоритм для частного случая - чтобы сортировку каждый раз не гонять.