Box2d - как создать простое замедление после перетаскивания и дрп объекта?(Actionscript 3) - PullRequest
1 голос
/ 08 января 2011

Итак, что мне нужно, просто - как создать перетаскиваемый круг с помощью flex 4 и AS3 и с помощью Box2d заставить его лететь еще немного в направлении перетаскивания и затем остановиться?

Ответы [ 2 ]

3 голосов
/ 14 июня 2011

Использование LinearDamping.

Вот так я использовал его в своем шутере сверху вниз, чтобы замедлить объект, если линейная скорость перестала применяться.

//Body is created using body definition
var b:b2Body = GameCore.environment.world.CreateBody(bodyDef);

//Fixture definition holds data such as density, friction and shape
var fixtureDef:b2FixtureDef;
fixtureDef = new b2FixtureDef();

//Define vertices etc in polygon shape
var shape:b2CircleShape;
shape = new b2CircleShape(Values.ptm(_diameter / 2));

//Assign values
fixtureDef.shape = shape;
fixtureDef.density = 1.5;
fixtureDef.friction = 0.3;
fixtureDef.restitution = 0.45;

//Add fixture to appropriate body
b.CreateFixture(fixtureDef);    

//Movement Physics Settings
b.SetLinearDamping(_linearDamping);
b.SetAngularDamping(_angularDamping);
3 голосов
/ 08 апреля 2011

Вы, вероятно, хотите убедиться, что гравитация выключена (ноль в обоих измерениях), т.е. что-то вроде

var gravity:b2Vec2 = new b2Vec2 (0.0, 0.0);

и пусть трение замедлит процесс.

...