|
Xors3D Графический движок с поддержкой DirectX9 |
13.10.2012, 22:34
|
#1
|
ПроЭктировщик
Регистрация: 26.12.2008
Адрес: Питер
Сообщений: 151
Написано 5 полезных сообщений (для 6 пользователей)
|
Отдача от взрыва
Как реализовать такую штуку - рядом взрывается объект, и от него идет взрывная волна, отталкивающая все объекты рядом..?
Я так понял это импульс, но как его посчитать?..
__________________
Фантазия плохого программиста ограничивается его знанием языка. Фантазия хорошего программиста ограничивается возможностями языка и компилятором. Фантазия гениального программиста не ограничивается ничем.
|
(Offline)
|
|
13.10.2012, 22:52
|
#2
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: Отдача от взрыва
взрывная_волна_радиус += скорость_взрыва * делта_времени_кадра
для каждого объекта
если расстояние от центра взрыва меньше чем радиус взрыва то задать импульс объекту направленный от центра взрыва к центру объекта
если взрывная_волна_радиус больше взрывная_волна_максимум_радиус то уничтожить взрывную волну
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
13.10.2012, 22:54
|
#3
|
ПроЭктировщик
Регистрация: 26.12.2008
Адрес: Питер
Сообщений: 151
Написано 5 полезных сообщений (для 6 пользователей)
|
Ответ: Отдача от взрыва
Весь день меня выручаешь, спасибо огромное.
А как задать импульс направленный от центра одного объекта к центру другого?..
__________________
Фантазия плохого программиста ограничивается его знанием языка. Фантазия хорошего программиста ограничивается возможностями языка и компилятором. Фантазия гениального программиста не ограничивается ничем.
|
(Offline)
|
|
13.10.2012, 22:56
|
#4
|
Терабайт исходников
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений (для 6,051 пользователей)
|
Ответ: Отдача от взрыва
А как задать импульс направленный от центра одного объекта к центру другого?..
|
вычти из центра ударенного объекта центр взрыва, нормализуй, получишь вектор пинка
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
13.10.2012, 22:58
|
#5
|
ПроЭктировщик
Регистрация: 26.12.2008
Адрес: Питер
Сообщений: 151
Написано 5 полезных сообщений (для 6 пользователей)
|
Ответ: Отдача от взрыва
Вычитать из центра - координаты? Как это делается, идиотом же себя чувствую..)
__________________
Фантазия плохого программиста ограничивается его знанием языка. Фантазия хорошего программиста ограничивается возможностями языка и компилятором. Фантазия гениального программиста не ограничивается ничем.
|
(Offline)
|
|
13.10.2012, 23:01
|
#6
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: Отдача от взрыва
float dx = EntityX(explosion) - EntityX(body)
float dy = EntityY(explosion) - EntityY(body)
float dz = EntityZ(explosion) - EntityZ(body)
float alen = power_of_explosion / sqrt(dx*dx + dy*dy +dz*dz)
dx = dx * alen
dy = dy * alen
dz = dz * alen
Каждый кадр двигаешь body на эти смещения. постепенно гася смещения как то так
dx = dx * 0.99
не уверен за синтаксис. писал в браузере. команды могут быть другими. суть та же.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
13.10.2012, 23:05
|
#7
|
ПроЭктировщик
Регистрация: 26.12.2008
Адрес: Питер
Сообщений: 151
Написано 5 полезных сообщений (для 6 пользователей)
|
Ответ: Отдача от взрыва
А почему бы не:
float alen = power_of_explosion / xEntityDistance(BodyBully,BodyDupe);
dx = dx * alen
dy = dy * alen
dz = dz * alen
__________________
Фантазия плохого программиста ограничивается его знанием языка. Фантазия хорошего программиста ограничивается возможностями языка и компилятором. Фантазия гениального программиста не ограничивается ничем.
|
(Offline)
|
|
13.10.2012, 23:08
|
#8
|
ПроЭктировщик
Регистрация: 26.12.2008
Адрес: Питер
Сообщений: 151
Написано 5 полезных сообщений (для 6 пользователей)
|
Ответ: Отдача от взрыва
Это все круто, конечно, но мне бы именно пинка дать, импульс.
Я ж на физике все это пытаюсь сделать.
__________________
Фантазия плохого программиста ограничивается его знанием языка. Фантазия хорошего программиста ограничивается возможностями языка и компилятором. Фантазия гениального программиста не ограничивается ничем.
|
(Offline)
|
|
13.10.2012, 23:15
|
#9
|
Элита
Регистрация: 16.01.2008
Сообщений: 1,800
Написано 958 полезных сообщений (для 3,833 пользователей)
|
Ответ: Отдача от взрыва
Даёшь пинок обьекту в направлении вектора между источником и целью...сила пинка зависит от дистанции...то есть чем дальше обьект, тем слабее пинок(сила толчка=сила взрыва*дистанцию(обьект,цель)).
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
14.10.2012, 00:21
|
#10
|
ПроЭктировщик
Регистрация: 26.12.2008
Адрес: Питер
Сообщений: 151
Написано 5 полезных сообщений (для 6 пользователей)
|
Ответ: Отдача от взрыва
Спасибо, мужики.
__________________
Фантазия плохого программиста ограничивается его знанием языка. Фантазия хорошего программиста ограничивается возможностями языка и компилятором. Фантазия гениального программиста не ограничивается ничем.
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 11:52.
|