![]() |
|
||||||||||
|
|||||
|
Коллеги! Делаю игру. Столкнулся с таким вопросом:
Есть фигура (прямоугольник, скажем, машина или танк), он движется. По нему ударяется снаряд. Как тело будет вести себя? Если б это была игра бильярд, то все просто(просто обмен скоростями), а тут так не пойдет (ну только если для случая 1 и то разные массы. А в случае 2 и 3 совсем не пойдет . Чувствую что физика не супер высокая, но все же меня заклинило. ПОМОГИТЕ! Как описать движение фигуры? |
|
|||||
|
помоему, я эту систему уравнений в программе математика решал (для разных масс), а потом в код вставлял, громоздко, понимаешь =(
Здесь или еще на каком-то сайте исходник упругого соударения шариков разных размеров был - ищи его а выражаются скорости тел после соодарения так: //сохранение импульса m1*v1x+m2*v2x=m1*v1'x+m2*v2'x m1*v1y+m2*v2y=m1*v1'y+m2*v2'y //сохранение энергии m1(v1*v1)/2+m2(v2*v2)/2=m1(v1'*v1')/2+m2(v2'*v2')/2 где v1=sqrt(v1x*v1x+v1y*v1y)- модуль v2=... v1'x -составляющая скорости после удара по x, v1'y -... физика конечто не супер высокая, но геморная, если учесть, что гашение добавить, танк НЕ НА ЛЬДУ стоит... Но всегда можно схитрить, маленько исказить физику и сделать что-то похожее то же если пуля вошла в танк, а не отскочила: m1*v1x+m2*v2x=m1*v1'x - здесь сразу без всякой энергии m1*v1y+m2*v2y=m1*v1'y получаем: v1'x=(m1*v1x+m2*v2x)/m1 v1'y=... |
|
|||||
|
Регистрация: Dec 1999
Адрес: Магадан
Сообщений: 763
|
Да всё то же что и в бильярде, кстати: взаимодействие центров масс - обмен импульса по линии столкновения и перпендикулярно ей (ну и что что массы разные - в бильярде тоже бывает соударение шара с массивом соприкасающихся шаров) и вращение, вызванное снарядом (радиальная скорость*коэффициент отношения масс/плечо).
Тут даже проще получается: трением при соударении можно пренебречь, вращение есть только по одной оси, вращения снарядов - нет, коэффициенты трения можно сделать линейными относительно скорости центра масс и угловой скорости, предметы не разлетаются после соударения, резинок на бортах нет - халява, сэр ![]() А вот с бильярдом я запарился... ![]()
__________________
Верить никому нельзя. Мне - можно. :) |
|
|||||
|
Регистрация: Jun 2006
Сообщений: 1,061
|
Советую не заморачиваться на реальной физике, а сделать все максимально просто, главное чтоб движение было более менее адекватно стандартным соударениям.
Хотя если эта игра будет рассчитывать траектории полета на Марс, то тут стоит подумать... |
|
|||||
|
4AM Games
|
Слушайте CCCPirate он дело говорит, так же говорит Джоб Макар один из лучших Флэш-Игроделов.
Во первых меньше кода Во вторых меньше нагрузка на проц, никому не нужна реальная физика с тормозами
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^ |
|
|||||
|
Регистрация: Dec 1999
Адрес: Магадан
Сообщений: 763
|
Не слушайте CCCPirate и Nirth
![]() Конечно, там, где не важна физика, можно и аркадностью заменить, но хорошая физика - это много плюсов для естественности игрового процесса, для играбельности, для приятственности, если не сильно тормозит, конечно... Почему так интересно смотреть на скачующего по минам пингвина? В чём секрет успеха игры "Gish"? И почему все так носятся с идеей отдельной платы ускорения физики в играх? А против вашего Джоба Макара выставляю Андэ Мишеля ( http://globz.com и http://blog.andre-michelle.com/2006/...engine-in-as3/ ) - любит человек физические движки во флэше делать... ![]()
__________________
Верить никому нельзя. Мне - можно. :) Последний раз редактировалось Dendroid; 28.09.2006 в 04:30. |
![]() |
![]() |
Часовой пояс GMT +4, время: 23:36. |
|
|
« Предыдущая тема | Следующая тема » |
|
|