Magatino, Хм, пока ещё не особо вникал в твой код
------------
Но назрела идейка одна
![:)](https://annimon.com/files/smiles/99.gif)
Вообщем пока что обойдусь Y(игрек)-сортировкой, то есть лиж бы боты нормально отображались сверху вниз, а как слева-направо - пока что без разницы) .
Смысл идейки вот в чём: у каждого бота есть переменная-счётчик, она зависит от того куда идёт бот. Если бот идёт вниз, то счётчик увеличивается, при достижении значения 24(это к примеру) обнуляется и инкрементируется(++
![;)](https://annimon.com/files/smiles/107.gif)
другая переменная-счётчик.
Таким образом при ходьбе бота по Игрек-координате постоянно отсчитывается сколько он прошёл в клеточках (24 пикселя получается одна клеточка).
То же самое происходит когда он идёт наоборот вверх, только переменная-счётчик уменьшается, при достижении -24 так же обнуляется, а вторая переменная декрементируется(--
![;)](https://annimon.com/files/smiles/107.gif)
.
И получается, что чем большее значение имеет вторая переменная-счётчик, тем ближе к экрану рисуется бот.
Однако это грубо говоря 40% алгоритма, проблема ещё в том, как собственно нарисовать бота выше других ботов или ниже
![:gg:](https://annimon.com/files/smiles/22.gif)
Дело в том, что у меня боты работают через вектор. И сейчас их удалённость от экрана зависит от того, каким по счёту их добавили в вектор. То есть если добавить 5 ботов, то первый добавленный будет сзади всех остальных, второй добавленный будет выше первого, но ниже третьего и так далее. 5-ый разумеется будет выше всех остальных.
Так вот мне кажется что, для того чтобы изменить их "приоритет" нужно перемещать их позиции в векторе.
Например в векторе есть боты A,B,C. Смысл в том, чтобы поменять их местами в векторе, например так C,B,A. Естественно если делать это в соответствии со значениями той самой второй переменной-счётчиком, то по идее боты станут отсортированными по Игрек-координате, то есть рисоваться сверху-вниз и перекрывать друг друга как надо
![:)](https://annimon.com/files/smiles/99.gif)
.
Так вот, как это можно сделать?
![:gg:](https://annimon.com/files/smiles/22.gif)
А именно: как можно перемещать объекты в векторе местами? )).
Хотя, пока писал, понял - а ведь на одной клетке могут быть много ботов, блин, получается их же нельзя поместить все вместе в одну "ячейку" вектора
![:hack:](https://annimon.com/files/smiles/26.gif)
. Облом) . Но в принципе, можно тогда просто их "вытягивать" в векторе(не могу по-другому объяснить). Вроде всё-равно они должны нормально закрываться ботами на нижней клетке.
Ого, скока написал :D