NCrashed
offline
Опыт:
13,553Активность: |
Механика Ньютона
Эта наработка позволит вам создавать юниты, котырые подчиняются всем законам физики. Они будут скатываться с горы или в яму, отскакивать от земли и других тел не хуже чем в любых "knockback systems". Вы сможете создать реалистичные модели звездных систем и приделать к каждой планете несколько спутников. Все движение происходит в пространстве, так что можно легко сделать юнитов перепрыгивающих клиффы как в грядущем Starcraft II. Система полностью сделана без использования кеша, что позволяет ей работать на любой версии вара.
Достоинства системы:
Импорт:
» Инструкция по установки GUI интерфейса
вставьте в свой файл туда же где нашли в моем, дальше ищите
Вставьте туда же в свой файл, дальше ищите:
Все функции от открывающей шапки до закрывающей скопируйте к себе, они должны быть перед строкой [TriggerCalls].
Дальше после этой строки ищите снова шапку (она рядом), копируйте к себе (после строки [TriggerCalls]), сохраняйтесь.
Использование:
или
тогда тело создатся в месте где стоит юнит. Вот пример триггера, который создает тело при входе
юнита в регион:
и тело начнет движение, чтобы остановить его
а чтобы удалить
или
вот расширенный предыдущиц пример:
Использование интерфейсов1.Нужно создать прототип объекта и занести его в PDLTypes или в другое удобное место. Вот шаблон:
Задание всех свойств и событий необязательно, если их не объявить, то значения будут браться по стандарту.
Объект пружинаВ версии 0.9 были добавлены пружины, вот список функций для работы с ними:
Пример смотрите в четвертом тесте "Пружины". Советую не использовать визуализацию эффектами со звуками, появляются утечки, которые пока не удалось устранить.
Скриншоты:http://img132.imageshack.us/img132/4152/55400833.th.jpghttp://img197.imageshack.us/img197/2166/22673716.th.jpghttp://img183.imageshack.us/img183/6194/53308737.th.jpghttp://img31.imageshack.us/img31/627/36360188.th.jpg
Изменения:v1.0: В карте показан пример использования: система из двух звезд и планеты.
v2.0: Нажатие на оленя демонстрирует новые возможности (тяготение к земле, сила сухого трения, силы упругости для гравитационных взаимодействий) v3.0: Теперь можно выбрать один из 6 тестов, раскрывающих суть системы v3.1: Исправлены баг с трением и отменой приказа. v4.0: Переделан вся система столкновений.(спасибо [b]Toadcop[/b] за подсказку) Теперь тела корректно реагируют на ямки,возвышения, на весь ланд. Теперь тела отскакивают от ланда под естественным углом. Убраны все баги с трением (иногда тела начинали самопроизвольно ползать=), Jittering по-научному.) v5.0: Система опробована на практике, доведена до ума, финальная версия. v5.2: Оптимизированная предыдущая версия, прирост производительности в 2 раза. v5.5: Оптимизация теперь позволила иметь на карте более 100 объектов и практически без лагов (если только в яму не кидать бесчисленное кол-во тел ). Добавлен тест "Производительность". К каждому телу добавился параметр "эластичность". Создан GUI интерфейс. v5.7: Устранены замеченные баги, спасибо участникам XGM, тест "Черная дыра" заменен на более внушительный и корректный. Переделана система движения юнита (не тела, а именно юнита), теперь тело-юнит отвечает на приказы и его попытки к движению учитываются =). Это, конечно, если включен мод. b.SCanRun(true). v5.8: Добавлена функция "раскол" тела на две части, изменен тест сухого трения на тест раскола тела, исправлены мелкие баги. v5.9: Версия для FDL CarLib. v6.0: Устранены недостатки, указанные Van_Damm . v6.5: Переход на cjass (работает начиная с версии 1.4). Переделана функция калибрации тел перед столкновением. Переписан модуль сухого трения, с учетом наклона плоскости. Добавлена условная трансляция блоков, ненужные блоки можно исключить при компиляции. v7.0: Добавлены интерфейсы, которые позволяют создавать свои прототипы объектов со своими обработчиками событий. Доведена до ума система обнаружения столкновения (теперь через квадратное уравнение). Добавлены силы Кулона, продемонстрированные в тесте "Модель атома". v.8.0:
Отредактировано NCrashed, 23.12.2009 в 15:41. |
05.06.2009, 12:53 | #1
+6/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
SRes
1110101000
offline
Опыт:
9,997Активность: |
Имхо - в варе это не нужно... |
05.06.2009, 13:36 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
NCrashed
offline
Опыт:
13,553Активность: |
Например карты, действие которых происходит в космосе.
NCrashed добавил: + любые Cinemantic карты |
05.06.2009, 13:55 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Hellfim
Новичок
offline
Опыт:
79,700Активность: |
Хорошая вещь, но ты забыд как минимум 1 из важнейших частей, импульс. |
05.06.2009, 14:40 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Van Damm
wait... what?
offline
Опыт:
22,268Активность: |
А где реакция опоры и трение?
Цитата:
|
|
05.06.2009, 14:56 | #5
+1/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
NCrashed
offline
Опыт:
13,553Активность: |
Импулс - 2ой закон Ньютона в другой форме) его введу когда столкновения будут, Van Damm в следующей версии
|
05.06.2009, 15:09 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Линкольн
Barg Ent.
offline
Опыт:
4,812Активность: |
NCrashed. Надеюсь следующая версия не будет весить полтора мегабайта.
|
05.06.2009, 15:15 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
NCrashed
offline
Опыт:
13,553Активность: |
Это из-за моделей), следующая будет на стандартных |
05.06.2009, 15:16 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DragonSpirit
у - уходи
offline
Опыт:
22,625Активность: |
NCrashed если отдать приказ движения "планете",то она продолжает двигать,но дёргается сильно...
|
05.06.2009, 15:19 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
NCrashed
offline
Опыт:
13,553Активность: |
Да, замечено - нужно отменять приказ или ставить тела за нетралов. То есть когда тела движутся этой системой, они не могут передвигаться обычным способом. |
05.06.2009, 15:23 | #10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DragonSpirit
у - уходи
offline
Опыт:
22,625Активность: |
NCrashed тогда блокируй/удаляй приказ движения,а то не тру
|
05.06.2009, 15:24 | #11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Линкольн
Barg Ent.
offline
Опыт:
4,812Активность: |
Не понравилось то, что я умудрился запартачить твою систему за 18 секунд, и геометрия рук тут не причем. Я только изменил одно значение и сохранил. |
05.06.2009, 15:36 | #12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
MIW Inc
offline
Опыт:
1,500Активность: |
Так круто!!!! Но много слишком весит |
05.06.2009, 15:42 | #13
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
PlayerDark
Coraline
offline
Опыт:
10,569Активность: |
Ох, мне не очень нравится подход к реализации физики. Хотя векторы это правильно. |
05.06.2009, 15:51 | #14
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
NCrashed
offline
Опыт:
13,553Активность: |
PlayerDark - обоснуй мнение.
Линкольн Смотря, что ты изменил) если массы планет и звезд, то тут реально надо вычислять DragonSpirit Все, теперь приказ блокируется |
05.06.2009, 15:56 | #15
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Линкольн
Barg Ent.
offline
Опыт:
4,812Активность: |
Изменил гравитационную постоянную Gi = 6.673 на Gi = 6.674. А если я скажем сделаю Землю, поставлю возле нее Луну и задам соответствующие параметры. |
05.06.2009, 16:07 | #16
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
NCrashed
offline
Опыт:
13,553Активность: |
Если рассчитаешь начальные скорости, то все норм)
NCrashed добавил: Выложил облегченную версию - 19 кб с испарвленным багом движения NCrashed добавил: Линкольн, попробовал изменить гравитационную постоянную - ничего не изменилось. Наверно виноват WEU, который добавляет свои функции в gui, сча разберусь. NCrashed добавил: По моим наблюдениям, очень тяжело придумать нестандартную стабильную систему из 4 и более тел, в конце концов несколько тел разгоняются в гравитационных полях друг друга до 2 космической и улетают за пределы карты, тем самым вызывая крах варика. NCrashed добавил: Выложил облегченную версию с фиксированными багами (при отдаче приказа тело дергалось + ограничил пространство, где могут летать тела. Теперь фатала не будет) |
05.06.2009, 17:13 | #17
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
SageOne
x
offline
Опыт:
46,054Активность: |
NCrashed сделай модели невыбираемыми, а если ландшафт заменить на пустоту, будет как в космосе - для пущей убедительности
|
05.06.2009, 18:22 | #18
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
NCrashed
offline
Опыт:
13,553Активность: |
Пиначет, мне нужно чтобы они выбирались, я определяю относительные координаты x y по кружкам). То есть текстуру земли заменить? Я думаю пока не надо, так как я делаю силы трения и Гука, а для них земля нужна.
|
05.06.2009, 18:44 | #19
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DragonSpirit
у - уходи
offline
Опыт:
22,625Активность: |
Цитата:
+1,карта только потолстеет... NCrashedкогда вторая версия? ) |
|
05.06.2009, 19:13 | #20
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|