вторник, 26 мая 2015 г.

Работа идет контора пишет...

некоторое время пришлось заниматься наведением порядка в эффектах взрывов, дыма и исправлять разного рода ошибки и недочеты. Сейчас идет работа над наземными юнитами, есть кое-каие идеи насчет их обхода препятствий и поведения в игре. Частично они уже работают. в состав игры введены "Грады". Однако с целью увеличения точности стрельбы необходима доработка баллистического вычислителя - а именно - расчет угла возвышения при стрельбе... Цели-то они вроде и накрывают, но мало, кроме того, это достигнуто за счет некоторого жульничества. Подозреваю, что при смене координат появления батареи РСЗО снаряды опять не будут поражать цель.
Взрывы все-таки были доделаны, при их появлении у земли они поднимаются вверх. число кадров - 49, ФПС даже при множественных взрывах не проседает. Более-менее удалось сделать огонь от сбитых машин частицами - собственный очень простенький эмиттер с анимированной текстурой. Дым был также модифицирован, добавляется отдельными плейнами с ориентацией  Halo, как и огонь. Вообще по-хорошему стоит сделать ограничение на появление огня на больших дистанциях от активной камеры - дым-то виден далеко, а вот факел огня - нет. На наземной технике заработали самодельные ЛОДы, как и ан самолетах...
Пока никак не удается всерьез заняться Су-25 - точнее, текстурой заклепок на нем. По причине внезапно напавшего типа "вдохновения" в кодинге (которое зачастую приводит к серии промахов или устареванию, того что раньше работало - это касается обзорного монитора радара на оверлее, впрочем, для него тоже пришло время замены видеотекстуры на просчет масштабированных координат). Да и наземные юниты тож надо текстурить. Но фактически из кода самой игры у меня осталось только поведение наземных ботов, чем я и занимаюсь, и что уже частично работает...
Скрины - сверху вниз.
1. Первые мгновения после поражения Ф-15 - новые огонь и дым.
2. Работает РСЗО "Град".
3. Прямое попадание НАР С-8 с МиГ-27К в танк.
4. Разрывы серии снарядов РСЗО на горизонте.




суббота, 2 мая 2015 г.

Исправление ошибок

после доведения до конца рабочей модели повреждений, которую обкатывал на МиГ-23 и Ф-15, пришлось подгонять под новые стандарты МиГ-27 и Ф-16. К сожалению, не обошлось без досадных накладок и ошибок. сила Букв не прощает ни малейшей ошибки в произносимом заклинании, и если хотя бы одна буква не та, или лишняя или таковой вообще нет), то моментально вылезает ошибка. так вот и пришлось "чистить" названия объектов и мешей. Заодно пришлось возвращаться к старой схеме со стрельбой из пушек и блоков НАР. Старый код для снарядов использовал функцию applyForce и поправку mathutilsVector, в дополнение к координатам появления снарядов. Эта схема хорошо показала себя на неподвижных зенитках, и, надеюсь, нормально заработает на малоскоростных (по сравнению с реактивными самолетами) наземных объектах. Как бы то ни было, теперь процесс появления снаряда выглядит так - указывается, какой объект добавляется, добавленный объект сразу парентится к источнику и получает локальные начальные координаты. Сам же снаряд, имея свойство-таймер, теперь ведет себя согласно коду:

    if own['timeStart'] < 0.05:
        own.removeParent()
    if own['timeStart'] < 0.15:
        own.localLinearVelocity = [random.randrange(-5,5), own['speed'], random.randrange(-5,5)]
    if own['timeStart'] > 0.15:
        own['speed'] = 0
        if own.worldLinearVelocity != mathutils.Vector((0.0, 0.0, 0.0)):
            own.alignAxisToVect(own.worldLinearVelocity, 1, 1.0)

На чрезвычайно короткое время он получает некую постоянную скорость, по истечении этого времени происходит "снятие" скорости и дальше снаряд летит по инерции, попутно "ориентируясь" по ходу движения. Аналогично, хотя и чуть-чуть по другому я поступил с отстреливаемыми ловушками (они еще дополнительно "уходят" в стороны, причем опять же, в момент появления ловушке присваивается свойство coordX, 1 и -1 означают, что ловушка уходит вверх и в сторону - минус - влево, плюс- вправо, 2 и -2 - аналогично, но ЛТЦ выстреливается не вверх, а вниз, и тоже в стороны, 0 - зарезервирован - костыль, конечно, но выглядит получше).
В общем, процесс переформатирования и выстраивания  так и не прекращается...