Форум 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=99472)

Sp1R1t 07.08.2007 03:33

Реакция на столкновение
 
Формчане, здраст! Кто-нибудь даст ссылку на ресурс или наведет на мысль вот в каком вопросе (гуглил...но ничего ессно не нашел):
есть 2 движущихся, вращающихся прямоугольника (короче машинки с видом сверху). В определенный момент они сталкиваются, затем они должны реалистично взаимодействовать(т.е. можно скажем подрезать соперника и он закрутиться, ну и т.д.). Проблем в определении столконовения и последующем правильном расположении прямоугольников нет. А вот с реакцией беда.....я даже не знаю с чего начать. Помогите, пжалуста:o

bbexp 07.08.2007 10:26

Надо физику читать.
http://ru.wikipedia.org/wiki/%D0%97%...BE.D0.BD.D0.B0

Eric Gurt 07.08.2007 10:54

я всегда делал прямоугольники, состоящие из 4 точек, у который есть позиция и скорость по Х и У. Если это машинки - то на каждом кадре скорость " *= 0.99". Просто проверяешь столкновение всех 4 точек одной машины с другой (
if (_root["car"+i].hitTest(px[i2], py[i2], true)) { }
), и если точка в другой машине - то определяешь, в какую сторону точка должна отлететь (опять таки хит тестом, только с четырмя зонами. у каждой зоны свое направление). И самое главное - все точки каждой машины должны быть соединены пружинками, тоесть они могут отталкивать и притягивать точки (они должны влиять как на скорость, так и на позицию, чтобы избежать эффекта бесконечного дергаться). Мовие клип распологаешь потом по трем опорным точкам.
И все!

VovkaMorkovka 07.08.2007 13:15

Цитата:

Сообщение от Eric Gurt
...

Мне кажется Ваш подход несколько усложнен.
Я - бы делал так:
1. Создал массив из 4 - х точек для каждой машины
2. проверка в цикле пересекаются - ли прямые задающие контур машины
3. Если пересекаются, то у каждой машины есть две составляющих скорости: движения и вращения вокруг некоторой оси, для простоты можно принять, что ось проходит через центр прямоугольника.
4. Расчитываешь скорости используя законы сохранения импульса и энергии
5. Если машинок много, то делим пространство на области и для каждой машинки проверяем на столкновение только те, которые входят в область
//
p.s. Получается весьма реальистично т.к. аналогично тому как в природе.

bbexp 07.08.2007 20:15

Не знаю насколько по уровню - но вот одна из многих ссылок, которые могут быть полезны.
http://lab.polygonal.de/category/physics/

Sp1R1t 08.08.2007 00:16

Цитата:

4. Расчитываешь скорости используя законы сохранения импульса и энергии
да мне в общем-то именно это и надо поподробнее. Использовать просто импульс без учета вращения выглядит не совсем красиво(хотя так же сделано и в alien shooter)...мне нужно получить в итоге не только скорости по х и у но и обязательно вращение
ps если я правильно понял, то с вращением нужно поступить так же, как и со скоростью...то есть использовать импульс?

Eric Gurt 08.08.2007 01:31

Цитата:

Сообщение от VovkaMorkovka
Мне кажется Ваш подход несколько усложнен.
Я - бы делал так:
...
p.s. Получается весьма реальистично т.к. аналогично тому как в природе.

если попробуешь сравнить - то мой способ реалистчнее, да и проще для реализации. Ну и конечно очень класно, если от сильного удара машину перекручавает :)

artcraft 08.08.2007 02:29

Цитата:

Сообщение от bbexp
Не знаю насколько по уровню - но вот одна из многих ссылок, которые могут быть полезны.
http://lab.polygonal.de/category/physics/

bbexp, классная ссылка!

Eric Gurt 09.08.2007 03:39

Вложений: 2
вылаживаю исходник моей версии

CrazyFlasher 09.08.2007 12:54

какой пароль для архива?


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

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