Пятница, 29 Ноября 2024, 13:59

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Программирование NPC. Перемещение RTS + 4 dir.
RikushiДата: Понедельник, 07 Ноября 2011, 18:04 | Сообщение # 1
почетный гость
Сейчас нет на сайте
Приветствую.
Возникли проблемы, при реализации следующей программы.

Задача:
Имеется база(base). При клике по базе, появляется новый юнит(tank).
Каждый юнит стремится достичь цели(target). Когда юнит достигает цели, он находится на ней в течении 3х(можно 10-20 для наглядности) секунд. В это время цель считается занятой и другой юнит меняет свою цель, на следующую свободную.
Если юнит достиг цели, то после ожидания он отправляется в уничтожитель(destroer). Цель становится свободной как только юнит проведет на ней заданное время и начнет движение к уничтожителю.
Если все цели заняты, то юнит направляется на точку ожидания(WaitPoint) и ждет там в течении 10ти секунд. Если ожидающий юнит, после 10ти секунд ожидания, не находит свободной цели, он направляется в уничтожитель(destroer).

Не могу придумать хорошего алгоритма. Прошу помощи.
P.S. Не обязательно использовать переменные и методы из исходника.

Исходник: загрузить.

Задача 2:
Юнит обладает методом движения RTS. Однако нужно, чтобы он двигался исключительно по прямым линиям и поворачивал только на угол 90.

Если ли возможность такого совмещения движения RTS и 4dir? Если нет, то как возможно реализовать подобный тип движения, чтобы юнит автоматически двигался к заданному объекту?

Добавлено (07.11.2011, 18:04)
---------------------------------------------
Ладно, раз невозможно решить проблему целиком, будем решать ее пошагово.

В исходнике все подробно закоментировано.

Прошу помощи, уже 4й день бьюсь.

Исходник

allxumukДата: Вторник, 08 Ноября 2011, 09:07 | Сообщение # 2
старожил
Сейчас нет на сайте
Quote (Rikushi)
Задача 2:

Вот есть примерчик: тыц.


Любой дурак может написать программу, которую поймёт компилятор.
Хорошие программисты пишут программы, которые смогут понять другие программисты.
RikushiДата: Вторник, 08 Ноября 2011, 18:03 | Сообщение # 3
почетный гость
Сейчас нет на сайте
Интересный пример. Я его даже немного доработал. Благодарю.
Кстати, если слишком уменьшить значение Every X milliseconds, то у патч файнда слетают мозги.
Правда не совсем разобрался как работает
Hunter2.ImagePointX(1)
Hunter2.ImagePointY(1)
Определяет грани всех четырех сторон?

Теперь осталось только разобраться с НПЦ и можно двигаться дальше.


Сообщение отредактировал Rikushi - Вторник, 08 Ноября 2011, 18:09
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг