![]() |
Здравствуйте. вот делаю тут аля-GTA 4 :lol: , помогите с проблемой, как в играх такого рода создано уличное движение. подскажите кто знает. можете даже кодик подбросить :@ . спасибо что прочитали хоть :unsure: :'((
|
Хоть какая-то, но эмуляция интеллекта тут должна быть.
Например - тупо расставить вейпоинты на карте и закодить алгоритм движения по ним. |
+алгоритм остановки на светофорах и перед людьми.
|
надо делать карту улиц и пусть машинки катаются по улицам... учитывая правила дорожного движения
я лично невидел чтобы была какаята закономерность в движении машин в играх типа gta кстати надо еще задать тип поведения водителя... точнее учитывает он правила дорожного движение или нет еще надо подумать над обездами и прочее вообщем сложновато ето зделать |
Цитата:
|
ну и какие там закономерности ? чем толще дорога - тем больше по ней прется машин
и усе |
Цитата:
если ты играл в gta то ты заметил бы , шта все машины поварачивают на определённых поворотах абсолютно по одним и тем же вейпоинтам... и едят по прямой тоже по ним же и т.д. и т.п. |
Цитата:
|
Цитата:
|
ко всему вышесказанному хочу добавить, что машины в таких играх типа GTA - динамические, т.е. они есть только там, где ты ездишь... соответственно, кроме примитивных правил дорожного движения (можно легко основать на WayPoint'ах), должны работать функции добавления и удаления машин с карты...
на счет правил, думаю там много думать не надо будет, просто натыкать вейпойнтов и проверять занятость вейпойнта (типа если следующий (или допустим первый слева или справа на перекрестке, чтоб уступить дорогу) занят, то стоять и ждать... также светофоры, просто помечают принудительно вейпойнт занятым и машины ждут)... ИМХО а объезды, характер водителей и т.п. это уже надо будет наворачивать когда вышесказанное будет работать... :) |
спасибо за обсуждение. Но как это все сделать.
Смотрите: я сделал карту с дорогой поставил на перекрестках кубы (вейпоинт) прикосаясь к которому машина поворачивает, НО КАК ОПРЕДЕЛИТЬ, где у нее перед. и едет ли она по дороге |
]Может начнёшь с чего-нибудь попроще?[
Повернуть машину "лицом" к вейпоинту поможет это dyaw# = DeltaYaw (car,WayPoint[k]) TurnEntity car,0,dyaw#,0 при условии, что WayPoint[k], это entity - к-ый вейпоинт НО поворот будет мгновенным! А то, что она по дороге едет, это вроде и не нужно знать, ведь вейпоинты стоят на дороге, значит при движении между вейпоинтами тачка будет ехать по дороге. Если нужно поворачивать (относительно плавно), то можно примерно так сделать dyaw# = DeltaYaw (car,WayPoint[k]) If Abs(dyaw#)>=carSpdY# TurnEntity car,0,carSpdY#,0 Else TurnEntity car,0,dyaw#,0 EndIf Теперь к этому добавляем MoveEntity car,0,0,carSpdZ# И получаем очень настырную машинку, которая будет рулить сама! |
говорилже надо делать карту дорог, а не набор вейпоитов !
|
Цитата:
|
еще скажи что нарисовать рисунок по точкам легче чем по векторам
ps. мне лично пофиг, как и где будет ето реализовано но по опыту предмереного мышления скажу что лутче карта дорог если вас всештаки так прет ети вейпоинты то разбиваем карту дорог на прямые линии, вот концы етих линий и будут вашими вейпоинтами НО при таком подходе будут просто ужасные повороты ето раз и при кривых дорогах будет просто дофигища вейпоинтов |
Часовой пояс GMT +4, время: 13:47. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot