Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Физика удара. (http://www.flasher.ru/forum/showthread.php?t=85677)

Скрипун 27.09.2006 22:13

Физика удара.
 
Вложений: 1
Коллеги! Делаю игру. Столкнулся с таким вопросом:
Есть фигура (прямоугольник, скажем, машина или танк), он движется. По нему ударяется снаряд. Как тело будет вести себя? Если б это была игра бильярд, то все просто(просто обмен скоростями), а тут так не пойдет (ну только если для случая 1 и то разные массы. А в случае 2 и 3 совсем не пойдет :( . Чувствую что физика не супер высокая, но все же меня заклинило. ПОМОГИТЕ! Как описать движение фигуры?

expl 28.09.2006 00:12

помоему, я эту систему уравнений в программе математика решал (для разных масс), а потом в код вставлял, громоздко, понимаешь =(
Здесь или еще на каком-то сайте исходник упругого соударения шариков разных размеров был - ищи его
а выражаются скорости тел после соодарения так:
//сохранение импульса
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=...

Dendroid 28.09.2006 03:00

Да всё то же что и в бильярде, кстати: взаимодействие центров масс - обмен импульса по линии столкновения и перпендикулярно ей (ну и что что массы разные - в бильярде тоже бывает соударение шара с массивом соприкасающихся шаров) и вращение, вызванное снарядом (радиальная скорость*коэффициент отношения масс/плечо).

Тут даже проще получается: трением при соударении можно пренебречь, вращение есть только по одной оси, вращения снарядов - нет, коэффициенты трения можно сделать линейными относительно скорости центра масс и угловой скорости, предметы не разлетаются после соударения, резинок на бортах нет - халява, сэр :)
А вот с бильярдом я запарился... :)

CCCPirate 28.09.2006 03:34

Советую не заморачиваться на реальной физике, а сделать все максимально просто, главное чтоб движение было более менее адекватно стандартным соударениям.

Хотя если эта игра будет рассчитывать траектории полета на Марс, то тут стоит подумать...

Nirth 28.09.2006 04:07

Слушайте CCCPirate он дело говорит, так же говорит Джоб Макар один из лучших Флэш-Игроделов.

Во первых меньше кода
Во вторых меньше нагрузка на проц, никому не нужна реальная физика с тормозами

Dendroid 28.09.2006 04:22

Не слушайте CCCPirate и Nirth :)
Конечно, там, где не важна физика, можно и аркадностью заменить, но хорошая физика - это много плюсов для естественности игрового процесса, для играбельности, для приятственности, если не сильно тормозит, конечно...
Почему так интересно смотреть на скачующего по минам пингвина? В чём секрет успеха игры "Gish"? И почему все так носятся с идеей отдельной платы ускорения физики в играх?
А против вашего Джоба Макара выставляю Андэ Мишеля ( http://globz.com и http://blog.andre-michelle.com/2006/...engine-in-as3/ ) - любит человек физические движки во флэше делать... ;)


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

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.