Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Xors3D

Xors3D Графический движок с поддержкой DirectX9

Ответ
 
Опции темы
Старый 13.10.2012, 22:34   #1
DarkMedveD
ПроЭктировщик
 
Аватар для DarkMedveD
 
Регистрация: 26.12.2008
Адрес: Питер
Сообщений: 151
Написано 5 полезных сообщений
(для 6 пользователей)
Отдача от взрыва

Как реализовать такую штуку - рядом взрывается объект, и от него идет взрывная волна, отталкивающая все объекты рядом..?

Я так понял это импульс, но как его посчитать?..
__________________
Фантазия плохого программиста ограничивается его знанием языка. Фантазия хорошего программиста ограничивается возможностями языка и компилятором. Фантазия гениального программиста не ограничивается ничем.
(Offline)
 
Ответить с цитированием
Старый 13.10.2012, 22:52   #2
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: Отдача от взрыва

взрывная_волна_радиус += скорость_взрыва * делта_времени_кадра
для каждого объекта
если расстояние от центра взрыва меньше чем радиус взрыва то задать импульс объекту направленный от центра взрыва к центру объекта
если взрывная_волна_радиус больше взрывная_волна_максимум_радиус то уничтожить взрывную волну
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
DarkMedveD (13.10.2012)
Старый 13.10.2012, 22:54   #3
DarkMedveD
ПроЭктировщик
 
Аватар для DarkMedveD
 
Регистрация: 26.12.2008
Адрес: Питер
Сообщений: 151
Написано 5 полезных сообщений
(для 6 пользователей)
Ответ: Отдача от взрыва

Весь день меня выручаешь, спасибо огромное.

А как задать импульс направленный от центра одного объекта к центру другого?..
__________________
Фантазия плохого программиста ограничивается его знанием языка. Фантазия хорошего программиста ограничивается возможностями языка и компилятором. Фантазия гениального программиста не ограничивается ничем.
(Offline)
 
Ответить с цитированием
Старый 13.10.2012, 22:56   #4
Mr_F_
Терабайт исходников
 
Аватар для Mr_F_
 
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений
(для 6,051 пользователей)
Ответ: Отдача от взрыва

А как задать импульс направленный от центра одного объекта к центру другого?..
вычти из центра ударенного объекта центр взрыва, нормализуй, получишь вектор пинка
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
DarkMedveD (14.10.2012)
Старый 13.10.2012, 22:58   #5
DarkMedveD
ПроЭктировщик
 
Аватар для DarkMedveD
 
Регистрация: 26.12.2008
Адрес: Питер
Сообщений: 151
Написано 5 полезных сообщений
(для 6 пользователей)
Ответ: Отдача от взрыва

Вычитать из центра - координаты? Как это делается, идиотом же себя чувствую..)
__________________
Фантазия плохого программиста ограничивается его знанием языка. Фантазия хорошего программиста ограничивается возможностями языка и компилятором. Фантазия гениального программиста не ограничивается ничем.
(Offline)
 
Ответить с цитированием
Старый 13.10.2012, 23:01   #6
HolyDel
 
Регистрация: 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)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
DarkMedveD (14.10.2012)
Старый 13.10.2012, 23:05   #7
DarkMedveD
ПроЭктировщик
 
Аватар для DarkMedveD
 
Регистрация: 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
DarkMedveD
ПроЭктировщик
 
Аватар для DarkMedveD
 
Регистрация: 26.12.2008
Адрес: Питер
Сообщений: 151
Написано 5 полезных сообщений
(для 6 пользователей)
Ответ: Отдача от взрыва

Это все круто, конечно, но мне бы именно пинка дать, импульс.
Я ж на физике все это пытаюсь сделать.
__________________
Фантазия плохого программиста ограничивается его знанием языка. Фантазия хорошего программиста ограничивается возможностями языка и компилятором. Фантазия гениального программиста не ограничивается ничем.
(Offline)
 
Ответить с цитированием
Старый 13.10.2012, 23:15   #9
Dzirt
Элита
 
Аватар для Dzirt
 
Регистрация: 16.01.2008
Сообщений: 1,800
Написано 958 полезных сообщений
(для 3,833 пользователей)
Ответ: Отдача от взрыва

Даёшь пинок обьекту в направлении вектора между источником и целью...сила пинка зависит от дистанции...то есть чем дальше обьект, тем слабее пинок(сила толчка=сила взрыва*дистанцию(обьект,цель)).
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
DarkMedveD (14.10.2012)
Старый 14.10.2012, 00:21   #10
DarkMedveD
ПроЭктировщик
 
Аватар для DarkMedveD
 
Регистрация: 26.12.2008
Адрес: Питер
Сообщений: 151
Написано 5 полезных сообщений
(для 6 пользователей)
Ответ: Отдача от взрыва

Спасибо, мужики.
__________________
Фантазия плохого программиста ограничивается его знанием языка. Фантазия хорошего программиста ограничивается возможностями языка и компилятором. Фантазия гениального программиста не ограничивается ничем.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 00:50.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com