Можешь воспользоваться формулой кривой безье: ты указываешь 4 опорные точки (P0, P1, P2, P3), относительно которых выстраивается кривая, затем циклом создаёшь множество точек на этой кривой, первая точка имеет t = 0, последняя точка t=1, остальные 98 точек находятся между 0 и 1 (0.01, 0.02, 0.03 и т.д.)
Далее по формуле вместо P0 подставляй координаты точек (отдельно высчитываешь X, отдельно Y
B(t) = (1-t)^3 * P0 + 3*t*(1-t)^2 * P1 + 3 * t^2 * 1(-t) * P2 + t^3 * P3
^ - знак степени
Далее располагай контрольные точки где хочешь и получишь кривую. Чтобы получить такую "петлю", надо чтобы центральные контрольные точки находились по углам квадрата, при этом P1 должна быть напротив P0, а P3 напротив P2
подробнее о кривых безье ru.wikipedia.org/wiki/Кривая_Безье
ссылка которую ты указал относительно новая, я первую версию ещё на варкрафт инфо закидывал, аналогов тогда не было даже у азиатов -) собственно - тогда это была рпгшка, где можно было переходя по краям экрана постоянно переходить в новые генерируемые локации
orc01, хер знает, я очень рад возможности менять динамично кости, броню и ппрочее без лишнего гемороя (хоть и есть баги, например, при прекращении способности аватар после изменения макс хп). Для своего проекта запилил диаблоподобный механизм генерации мобов.
Все формулы и параметры всех юнитов сделал в Excel, а из Excel генерирую код для варика по генерации юнитов разных типов с сопутствующими для них аффиксами и префиксами
Полезная фича: теперь способностям и предметам можно задавать какое угодно по размеру описание - но делать это нужно через объединение строк, так как есть лимит на размер одной строки, созданной через GUI
DracoL1ch, если в игре создаются идентичные строки - они занимают разные ячейки памяти? при создании строки - возвращается линк на уже существующую строку идентичного значения? Или идентичные строки занимают разные ячейки памяти?
Предлагаю следующее, если ты в течении месяца мне скинешь екзешник, в котором будет интерфейс стартового меню и анимированные переходы между кнопками этого меню, я закину тебе 500$ на твой банковский счет или qiwi
Соглашайся! Найдёшь исполнителя со стороны, который сделает это за 100 баксов!
Extremator, и что? этим мы проверим удаляется ли юнит из групп когда юнит исчезает. А задача узнать очищается ли уничтоженная группа без создания утечек.
Скороу сделаю анонс карты, увидишь -) проще показать чем рассказывать.
Вообще я сделал по другому - отказался от работы с многочисленными группами юнитов. Посмотрел как работают функции на работу с ними - мне показалось они слишком затратные. Например - чтобы проверить пуста ли группа - цикл зачем-то проходит по каждому юниту из занесёных в группу, а не прерывается на первом встреченном юните.
Так что вместо массивных групп - я делаю массивные счётчики, и работаю с ними обращаясь в массиве через index = GetUnitUserData . При смерти юнитов убавляется счётчик udg_uGroup_enum[index], и когда он возникает нуля - запускаю триггер udg_uGroup_trigUnDead[index] - таким образом на карте постоянно спавнятся группы юнитов и я могу отлавливать события на уничтожения этих групп по факту используя только одно событие.
когда в группе юниты спавнятся - я раздаю им index, идентичный шаблону по которому они спавнятся и наращиваю udg_uGroup_enum[index] чтобы отслеживать количества в группах
quq_CCCP, это не герои, это юниты, и они постоянно пересоздаются. Означает ли это что когда юнит удаляется - удаляются и все события с ним связанные? т. е. не будет захламляться память?
в одной теме прочёл "событие удаляется само когда объекта завязанного на него не существует" - это правда? Не будет утечек если за игру на один триггер будет подвешено 5000+ событий на смерть юнитов, при условии что одновременно будет существовать не больше 12 из них?
и что ты там учить для джнгп такое сложно собрался?
для меня это из области "я не знаю чего я не знаю", я не знаю что там учить и сколько там подводных камней, что это мне заблокирует какие противопоказания и т. д.. - чтобы об этом узнать тоже нужно шерстить поисковик. Но если варик воскреснет и в джнгп появится поддержка новой версии - то я приступлю к его изучению
» WarCraft 3 / Есть здесь кто в формулах движения даммиков шарит?
» WarCraft 3 / Есть здесь кто в формулах движения даммиков шарит?
Далее по формуле вместо P0 подставляй координаты точек (отдельно высчитываешь X, отдельно Y
B(t) = (1-t)^3 * P0 + 3*t*(1-t)^2 * P1 + 3 * t^2 * 1(-t) * P2 + t^3 * P3
^ - знак степени
Далее располагай контрольные точки где хочешь и получишь кривую. Чтобы получить такую "петлю", надо чтобы центральные контрольные точки находились по углам квадрата, при этом P1 должна быть напротив P0, а P3 напротив P2
подробнее о кривых безье ru.wikipedia.org/wiki/Кривая_Безье
» WarCraft 3 / Новые нативные функции в 1.29
» Wanderer: Акт 1 / Wanderer 0.14 final 1.26a
» Hunter or Victim / Hunter or Victim
» WarCraft 3 / Опять утечка, может ли утекать переменная типа строка?
» Hunter or Victim / Hunter or Victim
» WarCraft 3 / Новые нативные функции в 1.29
Все формулы и параметры всех юнитов сделал в Excel, а из Excel генерирую код для варика по генерации юнитов разных типов с сопутствующими для них аффиксами и префиксами
» WarCraft 3 / Новые нативные функции в 1.29
» WarCraft 3 / Новые нативные функции в 1.29
» WarCraft 3 / Опять утечка, может ли утекать переменная типа строка?
» WarCraft 3 / Иногда не создаётся плавающий текст
» Unity / Где мне лучше создать планируемое?
» WarCraft 3 / Надо ли очищать группу перед уничтожением
» WarCraft 3 / Надо ли очищать группу перед уничтожением
» WarCraft 3 / Надо ли очищать группу перед уничтожением
» WarCraft 3 / Надо ли очищать группу перед уничтожением
» WarCraft 3 / удаление событий
Вообще я сделал по другому - отказался от работы с многочисленными группами юнитов. Посмотрел как работают функции на работу с ними - мне показалось они слишком затратные. Например - чтобы проверить пуста ли группа - цикл зачем-то проходит по каждому юниту из занесёных в группу, а не прерывается на первом встреченном юните.
Так что вместо массивных групп - я делаю массивные счётчики, и работаю с ними обращаясь в массиве через index = GetUnitUserData . При смерти юнитов убавляется счётчик udg_uGroup_enum[index], и когда он возникает нуля - запускаю триггер udg_uGroup_trigUnDead[index] - таким образом на карте постоянно спавнятся группы юнитов и я могу отлавливать события на уничтожения этих групп по факту используя только одно событие.
когда в группе юниты спавнятся - я раздаю им index, идентичный шаблону по которому они спавнятся и наращиваю udg_uGroup_enum[index] чтобы отслеживать количества в группах
» WarCraft 3 / удаление событий
Ред. Cancel
» WarCraft 3 / удаление событий
» WarCraft 3 / Jass создать глоабльную переменную
» WarCraft 3 / handle в unitpool - что не так
» WarCraft 3 / handle в unitpool - что не так
» WarCraft 3 / handle в unitpool - что не так
» WarCraft 3 / handle в unitpool - что не так