Hate
конь вакуумный
offline
Опыт:
43,117Активность: |
Почему критует?
вот 2 кода, посмотрите и скажите плз где я лопухнулся?)
» нажми на меня 1
» нажми на меня 2
как только юнит заносится в udg_GroupInAir то вар вылетает |
19.11.2011, 03:24 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
FellGuard
Losyash
offline
Опыт:
39,547Активность: |
нет, оно фаталит не сразу =) увеличь всем таймерам период и засунь в каждую функцию по отладочному сообщению, сразу после локальных переменных, так ты узнаешь, в какой функции лажа. |
19.11.2011, 03:38 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Hate
конь вакуумный
offline
Опыт:
43,117Активность: |
FellGuard:
сделал вывод сообщения, как только дело доходит то пика юнитов в группе, фатал, даже локалки не успевает создавать (наверное))
Hatsume_Hate добавил:
где то сдесь проблема... только хз где
Hatsume_Hate добавил:
проблема в
........
омг WTF?! |
19.11.2011, 03:46 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
FellGuard
Losyash
offline
Опыт:
39,547Активность: |
Распиши лучше, что вообще должно происходить? Почитал код, впал в лёгкий ступор из-за организации: зачем для каждого пикнутого юнита создавать таймер, зачем потом для сработавшего таймера пускать ещё таймер, зачем разбивать код на такую плохочитаемую цепь функций мне непонятно
FellGuard добавил: Как бы, пик юнитов происходит сразу, для группы, достаточно одного таймера на группу юнитов. |
19.11.2011, 03:59 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Hate
конь вакуумный
offline
Опыт:
43,117Активность: |
FellGuard:
это постепенное "подбрасывание" юнита вверх, удар заносит юнита в группу, первый тригг пикает всех в этой группе, делает с ними действия и выбрасывает с группы занося в хэш таблицу, таймеры запускают по завершении следующий таймер, при этом они меняю значения в хэш таблице, меняют по сути скорость подбрасывания, тоесть первые 0.37 секунд он подбрасывается каждые 0.5 сек на 25 единиц, затем следующие 0.18 на 10 и тд... по окончании он заносит этого юнита в группу udg_GroupInGround а тот делает все до наоборот и при значени высоты 0 или меньше превратит в такую же единицу но уже с типом ходьбы "пеший"
>FellGuard добавил:
двигать юнитов на одно и тоже значение для меня как то некрасиво, подобным способом я отталкиваю юнитов, и выглядит это довольно красиво, и постепенно |
19.11.2011, 04:01 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
FellGuard
Losyash
offline
Опыт:
39,547Активность: |
Ага, значит, по пунктам.
FellGuard добавил: Ну т.е. я что хочу сказать - проектировка алгоритма хромает) Его стоило бы переделать. |
19.11.2011, 04:11 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Hate
конь вакуумный
offline
Опыт:
43,117Активность: |
FellGuard:
тоесть, если у юнита будет абилка "превратиться в ворона" но она будет в спеллбуке закрытом, то я уже могу менять ему высоту? О_О
рейт ну не то как то.. ненаю, по мне так кажется таймерами будет красивее.
четвертый пункт поподробнее можно?
зато работает!)) Q.Q |
19.11.2011, 04:11 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
FellGuard
Losyash
offline
Опыт:
39,547Активность: |
Ключевое понятие в программировании чего-либо (особенно графики) это достаточность) Т.е. чего достаточно для того, чтобы добиться нужного эффекта, никто не станет жертвовать производительностью в ущерб здравому смыслу. =) Именно поэтому придумали всякие трилинейные фильтрации, мипмапы, порталы и всё такое прочее; только поэтому и можно рубиться в 3d шутер без тормозов/наличия мэйнфрейма в кач-ве системного блока. Это что касается фразы "зато работает"
Да, можно добавить и тут же убрать абилу, не обязательно даже городить спеллбук, всё уже работает. Рейт хорош для линейного плавного поднимания, если тебе нужно более-менее реалистичное подкидывание, то меняй периодически высоту в определённое время. Как раз таки одним таймером на группу. А вот уже настройки персональных высот можно как раз высчитывать в группе для каждого юнита - исходя из рандома или каких-то других соображений (например, предполагаемого веса юнита). FellGuard добавил: Щас графический примерчик кину) |
19.11.2011, 04:19 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Hate
конь вакуумный
offline
Опыт:
43,117Активность: |
FellGuard:
можно не только графический но и текстовый) ибо до меня не доходит как еще можно) |
19.11.2011, 04:22 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
FellGuard
Losyash
offline
Опыт:
39,547Активность: |
Тут основная идея - менять высоту всё той же SetUnitFlyHeight с фиксированным рейтом. Параболу можно построить из простых прямых. FellGuard добавил: Причём временную ось если разбить на равные "ключевые" отрезки, в которых будет меняться траектория на следующую прямую, то всё это делается одним единственным таймером. Значения высот же задаются ручками. |
19.11.2011, 04:39 | #10
+1/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Hate
конь вакуумный
offline
Опыт:
43,117Активность: |
FellGuard:
о загнул))
мне нужно простое поднимание вверх и опускание вниз, ну ты меня подтолкнул на пару мыслей) |
19.11.2011, 04:39 | #11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
FellGuard
Losyash
offline
Опыт:
39,547Активность: |
Т.е. главные принципы: достаточно одной группы, достаточно одного таймера, достаточно одного триггера и нескольких функций. Не обязательно городить кучу таймеров только потому, что траектории нужны разные. Сохраняй ключевые параметры для юнита в группе в хэштаблицу, и при каждом тике уже исходя из них высчитывай траекторию. Математика рулит)
|
19.11.2011, 04:45 | #12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Hate
конь вакуумный
offline
Опыт:
43,117Активность: |
FellGuard:
а я ее с 4 класса не учу) все отбили желание ею овладевать))
спасибо за все)
Hatsume_Hate добавил: сделал так, но ничего не происходит о_о.. |
19.11.2011, 04:59 | #13
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
FellGuard
Losyash
offline
Опыт:
39,547Активность: |
Держи, в общем. Наглядностью и оптимизацией там и не пахнет, но, думаю, разберёшься.
|
19.11.2011, 06:26 | #14
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Hate
конь вакуумный
offline
Опыт:
43,117Активность: |
FellGuard:
щас гляну.. а у мя условия не работают магическим образом... |
19.11.2011, 06:34 | #15
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
FellGuard
Losyash
offline
Опыт:
39,547Активность: |
100 это маленький рэйт). Он очень долгий, 500-700 уже лучше, 1000 - быстрый. Смотри карту, не нужно столько условий, можно значения по формуле высчитывать... Таймер там стоит 0.01, можно уменьшить частоту срабатываний до 0.10 и реже, но тогда нужно будет рейт тоже задавать формулой, или движение будет отрывистым.
|
19.11.2011, 06:41 | #16
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Hate
конь вакуумный
offline
Опыт:
43,117Активность: |
FellGuard:
попробовал перенести то что в твоей карте на свою.. и чтож ты думаешь... ничего не работает....
обожемой.. все надо идти спать, уже ничего не соображаю, не заметил кое каких срок, изменили заработало, думаю смогу подогнать это чудо под себя, все, буду приносить каждую субботу в честь тебя жертвоприношения... |
19.11.2011, 07:02 | #17
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|