Я установил свойство масштаба гравитации тела Box2d. Я хотел бы изменить шкалу гравитации, когда тело достигает определенного положения. Можно ли это сделать? Если да, то как этого можно достичь.
изменение масштаба гравитации box2d 'тела'
Ответы (2)
В моем случае я установил постоянную скорость для падающих объектов, подобных этому.
#define MIN_SPEED 2.0f
-(void)update:(ccTime) dt
{
b2Vec2 vel = self.body->GetLinearVelocity();
if( ABS(vel.x) > MIN_SPEED )
{
if(vel.x>0)
vel.x = MIN_SPEED;
else
vel.x = -(MIN_SPEED);
}
if( ABS(vel.y) > MIN_SPEED )
{
if(vel.y>0)
vel.y = MIN_SPEED;
else
vel.y = -(MIN_SPEED);
}
self.body->SetLinearVelocity(vel);
}
person
Guru
schedule
12.06.2013
Проверьте положение и используйте SetGravityScale() :
b2Vec2 pos = body->GetPosition();
if (pos.x > minPosX && pos.x < maxPosX
&& pos.y > minPosY && pos.y < maxPosY) {
body->SetGravityScale(theScalingFactor);
}
person
Benoît Lahoz
schedule
19.06.2013