Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   APE phys Engine: square Particle (http://www.flasher.ru/forum/showthread.php?t=109687)

ToXICus 19.03.2008 01:08

APE phys Engine: square Particle
 
Люди, юзал на днях класс, и не могу понять, почему прямоугольные партиклы не имземяют наклона, тоесть, если палка боком задевает что-то, то она не упадет, а будет уголком: отпрыгивать, тоесть падение не произойдет. Может в движке есть какие-то настройки, какие я не увидел?
Подскажите, плз.

WindWalker 19.03.2008 05:15

Насколько я понял, это такая вот хитрая особенность APE.
Поэтому вместо SquareParticle приходиться делать 4 CircleParticle и соединять их с помощью SpringConstrait.
Вообще APE какой-то сильно уж примитивный.

Box2D мне больше понравился по функционалу, хотя и тоже сильно не доделанный и со своими минусами.

ToXICus 21.03.2008 22:23

А в чем недостатки бох"а?
И, если движок бесплатный, можете ссылку дать?

WindWalker 21.03.2008 22:54

http://box2dflash.sourceforge.net/

Лизензия там максимально свободная: делай абсолютно что хочешь, кроме плагиата (The origin of this software must not be misrepresented; you must not claim that you wrote the original software).
Всякие GPL на этом фоне выглядят просто тоталитарно-репрессивными :)

Насчёт проблем...
Эта библиотечка является портом С++ библиотеки (http://box2d.org/).
Так вот, портирование сделано не до конца - некоторые классы не доведены до ума. Но те, которые используются в демке (а демка там очень даже неслабая), вполне работоспособные.

Rzer 21.03.2008 23:28

Примитивным он может показаться только на первый взгляд. На второй уже использую его где только можно: фотогалереи (для эффекта скольжения фотокарточек по столу), до игры. Все просто и понятно, если прочитать тюториал.

WindWalker 21.03.2008 23:52

Для полигональных частиц ты писал свой класс или по какой-то хитрой схеме использовал существующие?

Rzer 21.03.2008 23:57

В фото галерее (*все кто надо посмотрел*) для квадратов. Для игры - все что только можно в т.ч и полигональные (пример пока не могу показать из-за его сырости)

WindWalker 22.03.2008 00:54

Вот я и спрашиваю: полигональные каким образом делал?

Rzer 22.03.2008 01:05

Код:

                public function createPolyDef(position:Array, arr:Array, density:Number = 0, friction:Number = 0.3, restitution:Number = 0.1){
                        var bodyDefP:b2BodyDef = new b2BodyDef();
                        var polyDef:b2PolyDef = new b2PolyDef();
                       
                        polyDef.vertexCount = arr.length;
                        for (var i=0; i<arr.length;i++){
                                polyDef.vertices[i].Set(arr[i][0], arr[i][1]);
                        }
                       
                        polyDef.density = density;
                        polyDef.friction = friction;
                        polyDef.restitution = restitution;
                       
                        bodyDefP.position.Set(position[0], position[1]);
                       
                        bodyDefP.AddShape(polyDef);
                        m_world.CreateBody(bodyDefP);
                }

Читай мануал там на тему полигональных написано подробно: сколько граней, какие типы можно (выпуклые) и где это поменять

WindWalker 22.03.2008 02:36

Блин, так ты про Box2d говоришь :)
Я думал ты APE защищаешь. Я APE примитивным называл.

Box2d гораздо более развитый. Но флешовая версия пока не такая крутая, как сишный предок.
Достаточно просто открыть в FDT и посмотреть в окошко Problems.

И если большинство ошибок правиться довольно быстро, то вот как поправить Box2D.Dynamics.Contacts.b2Conservative и Box2D.Collision.b2Distance так сразу и не скажешь.


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

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