Показать сообщение отдельно
Старый 24.07.2008, 16:01
Division вне форума Посмотреть профиль Отправить личное сообщение для Division Найти все сообщения от Division
  № 6  
Ответить с цитированием
Division
 
Аватар для Division

Регистрация: Jul 2008
Адрес: Украина, Херсон
Сообщений: 635
Отправить сообщение для Division с помощью ICQ
ИМХО вейпоинты оптимальный вариант

Если заинтересует - здесь можно скачать исходники( и бинарник тож (: ) на Delphi и глянуть как я это делал.
http://igdc.ru/viewpage.php?page_id=33

Представь себе трассу, вейпоинты идут точно по середине дороги. Есть машинка. Можно легко определить, какой вейпоинт ближайший к машинке. Так же легко найти следующий за ним. То есть фактически мы имеем вектор, куда следует двигаться машинке будь она посередине дороги. Машинка может поворачивать налево и направо, верно? (: Мы можем найти требуемый угол поворота машинки, чтобы она шла по найденному выше вектору. Зная текущий угол поворота машинки и требуемый мы может определить, куда следует поворачивать в данный момент - вправо, влево, или просто ехать прямо.
Также легко посчитать расстояние машинки от центра дороги - достаточно погуглить на тему расстояние от точки до прямой. Если это расстояние больше четверти ширины дороги, то корректируем требуемый вектор движения в нужную сторону - чтобы машинка держалась ближе к центру.

Здесь нет учета других машин. То есть ИИ едет как бы сам по себе. Могу ошибаться, это всего лишь мой способ решения проблемы.
__________________
while(1) {}