Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   APE. Маленький проект - много вопросов (http://www.flasher.ru/forum/showthread.php?t=103887)

grunerasta 14.11.2007 18:23

APE. Маленький проект - много вопросов
 
http://slil.ru/25102428

Есть вот такой прожект (прожект под третий билдер - вторую бету =)).
Откопал вчера замечательный физический движок (http://www.cove.org/ape/index.htm), написал на нем что-то похожее на базовую часть одного проекта. Проект заключается в следующем: если растянуть html на весь экран (где-то на 1000-1200 по высоте) - вы увидите внизу экрана два шарика, связанных веревкой. Надо зажать за один из них, или за веревку, оттянуть (появится зеленая стрелка), и отпустить. За обьекты и столкновения отвечет топовый файл. За поверхности - Surfaces.as, за веревку - Bridge.as (с*дил с плилогавшейся демки CarDemo).

Прошу ваших рекомендаций как решить следующие задачи:

Задачи:
1.) Сделать веревку похожей на веревку, то есть не как сейчас полигонами, а плавную, желательно при этом уменьшить количество опорных точек
2.) Надо как-то уменьшить эластичность шарфа, чтобы два шара не разлетались, играл с параметром stiffness - все равно на большой скорости разлетаются. В общем нужно лимит поставить на длину этого шарфа
3.) При большой скорости конструкции из шаров обьект, захватываемый шарфом как-бы выпадает, это вообще не в тему, соответственно если довести весь шарф до двух-трех опорных точек - шарфом вообще ничего захватываться не будет
4.) Нужно палить столкновения обьектов, вопрос - как?

Спасибо.

island 15.11.2007 09:28

1. В любом случае придется аппроксимировать веревку линейными отрезками, поэтому полигональность можно уменьшить лишь увеличив количество опорных точек :)
2. Да, это знакомая проблема. Даже если у SpringConstraint поставить stiffness равную единице, связь не будет абсолютно жесткой. Можно увеличить свойство constraintCycles движка (за одну итерацию симуляции решение связей будет пробегаться несколько раз, что увеличит точность и устойчивость системы).
3. При больших скоростях возможны случаи проникновения объектов друг в друга. В некоторых случаях может помочь увеличение свойства multisampling движка (но эта фича пока глючная), можно также повысить точность симуляции (отразится на производительности). А лучше всего, имхо, искусственно ограничить скорость перемещения элементов шарфа (то есть поставить верхний предел на величину прикладываемой силы к кружкам шарфа).
4. В скачиваемом архиве, вроде, нет класса CollisionEvent, но он есть в SVN. Работать с определением столкновений в APE точно так же, как и со стандартными событиями - нужно просто подписаться на интересующие столкновения с помощью addEventListener.

librio 15.11.2007 16:15

1 - можно оставить все как есть, но оверрайдить функцию paint и рисовать там нужную curve. Для пользователя все будет выглядеть красиво :)

grunerasta 15.11.2007 18:41

librio, рисование поправляю, но теперь остается проблема прохождения обьектов сквозь шарф, особенно если точки будет три
island:
2.) constraintCycles помогло, спасибо, даже для проца сильно не сказалось
3.) да, наверное так и придется сделать, все-же хочется оставвить некую динамичность
4.) качаю, изучаю =))


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

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