E-Cone
Да, но нет )
Да да, да!
E-Cone
> Да да, да!
Нет. У меня все намного проще.
Никакой подвески.
Никакого навмеша.
Машинка = шарик XD
У меня RRR - у тебя Carmageddon2
Добавь подвеску, не будь сосиской!
E-Cone
> Добавь подвеску
Она не нужна для моих целей. Я делаю RRR
Буду делать кармагеддон - сделаю подвеску XD
Ducat
Подвеска для любых целей приятность добавляет. Хотя бы косметическая
И помни про мотор рок
Капец я запарился делать позиционирование...
Сначала решил наебмануть систему, и сделать хитрый метод из этого видоса
TLDR:
1. Игрок везет перед собой большой плоский коллайдер.
2. Противник, выходя из этого коллайдера, тригерит изменение позиции.
3. Вычисление предстваляет из себя нехитрую операцию по вычислению типа Vector3.Dot(collider.forward, (AI.position - collider.position)).
4. Если результат больше нуля - то AI впереди, и наоборот.
5. AI впереди = позиция +1, и наоборот.
Но в итоге, постоянно возникают проблемы. Если две машинки одновременно проехали. Если медленно опережаешь противника - возникают сбои в подсчете места...
И, короче, я решил остановиться на тупом подсчете чекпоинтов, и у кого больше - тот впереди... %(
Делай тот же самый Dot позиции машинки только относительно сегментов между чекпоинтами. Так сможешь всегда точно знать, на каком месте едет бот и регулировать его скорость или агрессивность в зависимости от занимаемого места.
Ducat
Лул, если трасса содержит фиксированные чек поинты, то тогда проще тупо изменять дистанцию до следующего чекпоинта/или до прошлого. Тогда упорядочивание будет идти такое: круг-> номер чекпоинта->дистанция от или до него. Если ты будешь хитрожопым и будешь добавлять срезки или дублирующие маршруты, то имеет смысл номер чекпоинта заменить на абстрактное "дистанция". Если будет два маршрута, длинный стандартный и короткий срез, то ты можешь поставить разные веса на чекпоинты. Допустим на длинном их 5, а на малом 3. И суммарная протяженность 3000 между точками разветвления. Тогда вес одного чекпоинта на большом маршруте будет 600, а на коротком 1000. Чтобы считать удаленность, нужна брать веса средний вес чекпоинтов (точка разрыва и соединения может иметь вес 300 например) и умножать его на долю пройденного пути. И все, позиция имеется. Тогда возникает сложность в том, как выбрать направление для расчета. Я думаю 2 триггер зоны решат это дело. Проехал через нее - сменил следующий чекпоинт на параллельный. По умолчанию можно взять главный маршрут за точки движения.
Ну факт, что я понятно написал все. Но работать должно.
- Переработал восстановление после взрыва (раньше было запоминание последней позиции на земле, теперь просто летим в последний чекплинт)
- Разобрался с коллайдерами машин. Теперь они не влезают друг в друга и в борты.
- Теперь ИИ тачки притормаживают, если видят прямо перед собой другую машинку.
- Добавил эффекты искр при столкновении с машинкой.
- Эффекты дыма при заносе/повороте.
- Следы от шин теперь тоже отрисовываются только в заносе/повороте
Ну и в релиз
Ну как релиз. Тунинг, штук пять трасс и столко же машинок. А потом релиз.
E-Cone
> Ну и в релиз
Allejo
> Тунинг, штук пять трасс и столко же машинок
До релиза еще куча скучной однообразной работы (
Ducat
Довольно круто. Так и не подумаешь, что там шарик внутри.
А как трасса сделана? Генерируется или еще как-то?
AWPStar
> А как трасса сделана? Генерируется или еще как-то?
Просто вручную расставил элементы.