Зададох свойството мащаб на гравитацията на 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