tonline_kms65
|
Дата: Четверг, 30.03.2017, 03:48:39 | Сообщение # 1 |
|
Сообщений: 215
Репутация: 3 [ +/- ]
|
|
Все здравствуйте. Меня давно мучает такой вопрос - как ограничить трассировку видом только вперед, т.е. то что сзади что бы трассировка не видела. А то у меня ракеты, если противник сзади появляется, стартуют назад. Как то нереально смотрится, да и Дрону достается, его ракета цепляет - взрывается, наносит ущерб. Там ограничение идет 4-х угольником (min, max), и я так понимаю вдоль всей видимой карты.
Вот то что я использую:
Код float min[3] = {-2.0, -2.0, -2.0}; float max[3] = {2.0, 2.0, 2.0}; TR_TraceHullFilter(rocket, enemy, min, max, MASK_SOLID, conditions, rocket); здесь учитывается позиция от стрелка до противника, очевидно что отсюда и косяк. Противник может быть с любой стороны.
Если перейти на это:
Код TR_TraceRayFilter(pos, angles, MASK_SOLID, RayType_Infinite, conditions, ent); этот вариант учитывает позицию стрелка и угол направления "взгляда", возможно он лучше. Кто сталкивался всерьёз - отпишитесь.
Добавлено (30.03.2017, 03:48:39) --------------------------------------------- Ни у кого никаких мыслей? Может быть я вопрос не правильно (непонятно) задал?
Я думаю, что все-таки этот вариант лучше, но не могу никак сообразить как его применить.
Код TR_TraceRayFilter(pos, angles, MASK_SOLID, RayType_Infinite, conditions, ent);
У меня такие мысли: Для начала - в цикле нахожу противников, получаю их координаты. Все противники есть. Кто то виден, кто то нет. Сейчас я делаю трассировку от ракеты до ближайшего видимого противника по их координатам.
Код TR_TraceHullFilter(ent_pos, enemy_pos, tunnel_min, tunnel_max, MASK_SOLID, conditions, ent); Видимо нужно изменить не координаты противников, а направление на ближайшего противника вектором (angles). Если там противника не окажется (грохнули например) продолжаем движение к следующему ближайшему противнику опять же по вектору.
Код TR_TraceRayFilter(pos, angles, MASK_SOLID, RayType_Infinite, conditions, ent); Как то так. Пока не могу мысли сложить, практикой не могу - на работе..
Сообщение отредактировал tonline_kms65 - Четверг, 30.03.2017, 04:05:39 |
|
| |