Вопрос насчет TriApi, допустим у меня есть эффект дымка от стен CSmokePuff из паранои, я хочу как-то переделать его чтобы он рисовал круги при попадании на стены, я пытаюсь в общем повторить эффект бластера из GunMan Chronicles, там при попадании в стену помимо спрайта попадания еще рисуются "кольца" на стене, я вот пытаюсь эти кольца как-то воссоздать. В общем как мне сделать чтобы спрайт не "смотрел" на игрока, а от стены? Я не нашел как это сделать. И как можно сделать чтобы можно было указать свой спрайт? А то у меня с этим тоже проблемы возникли. Вот код этого эффекта:
>> как мне сделать чтобы спрайт не "смотрел" на игрока, а от стены?
Насколько я помню в БСП для каждой поверхности записана нормаль, собственно по ней и надо ориентировать твой спрайт
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Chyvachok есть 2D триапи (рисуется всегда повёрнутым к игроку, например спрайты над бошками тиммейтов в DoD) и есть 3D триапи (огонёк зажигалки в Инвазионе). Вот, используй 3D-вариант. Он, кстати, и в софтваре тоже работает.
gEngfuncs.pTriAPI->TexCoord2f это для 2D, используй gEngfuncs.pTriAPI->Vertex3f для 3D координат.
Ku2zoff спасибо за подсказку, посмотрел в коде инвазиона, что-то там скопировал, и каким-то чудом вроде стало работать как надо, хотя код с этими gEngfuncs.pTriAPI там был очень похож, что вышло: https://imgur.com/a/ICAiS
Вот кстати код, интересно, насколько он нормальный? Может какие моменты можно улучшить?
Вопрос по векторам и углам, а как развернуть объект по tr.vecPlaneNormal?
Допустим я хочу чтобы обьект который липнет к стене еще рандомно разворачивался относительно этой стены, я то я заюзал StickyGibсы, и в глаза бросается что они одинаково к поверхности клеються.
~ X ~ ну они и так к стене разворачиваются на подобии трипмины, мина она всегда прямо лепиться, не боком там или еще как-то, я имел ввиду их еще для рандома покрутить относительно стены, чтобы одинаковость формы моделей не так в глаза бросалась, но я вот не знаю как бы именно покрутить относительно этой tr.vecPlaneNormal, а не мира.
Посмотрел у стрелы арбалета, оказываеться добавить pev->angles.z = RANDOM_LONG(0,360); было достаточно, я думал что оно крутить будет относительно мира, а стены. Заодно попробовал ретекстурить эти stickygib-ы: https://imgur.com/a/PXTCT