Приветствую.
Возникли проблемы, при реализации следующей программы.
Задача:
Имеется база(base). При клике по базе, появляется новый юнит(tank).
Каждый юнит стремится достичь цели(target). Когда юнит достигает цели, он находится на ней в течении 3х(можно 10-20 для наглядности) секунд. В это время цель считается занятой и другой юнит меняет свою цель, на следующую свободную.
Если юнит достиг цели, то после ожидания он отправляется в уничтожитель(destroer). Цель становится свободной как только юнит проведет на ней заданное время и начнет движение к уничтожителю.
Если все цели заняты, то юнит направляется на точку ожидания(WaitPoint) и ждет там в течении 10ти секунд. Если ожидающий юнит, после 10ти секунд ожидания, не находит свободной цели, он направляется в уничтожитель(destroer).
Не могу придумать хорошего алгоритма. Прошу помощи.
P.S. Не обязательно использовать переменные и методы из исходника.
Исходник: загрузить.
Задача 2:
Юнит обладает методом движения RTS. Однако нужно, чтобы он двигался исключительно по прямым линиям и поворачивал только на угол 90.
Если ли возможность такого совмещения движения RTS и 4dir? Если нет, то как возможно реализовать подобный тип движения, чтобы юнит автоматически двигался к заданному объекту?Добавлено (07.11.2011, 18:04)
---------------------------------------------
Ладно, раз невозможно решить проблему целиком, будем решать ее пошагово.
В исходнике все подробно закоментировано.
Прошу помощи, уже 4й день бьюсь.
Исходник