Cocos2d iphone 更改box2d“身体”重力比例

Cocos2d iphone 更改box2d“身体”重力比例,cocos2d-iphone,box2d,box2d-iphone,Cocos2d Iphone,Box2d,Box2d Iphone,我设置了Box2d实体的重力比例特性。当身体到达一个特定的位置时,我想改变重力刻度。这能做到吗?如果是,如何实现。在我的例子中,我为这样的坠落物体设置了恒定速度 #define MIN_SPEED 2.0f -(void)update:(ccTime) dt { b2Vec2 vel = self.body->GetLinearVelocity(); if( ABS(vel.x) > MIN_SPEED ) { if(vel.x>0)

我设置了Box2d实体的重力比例特性。当身体到达一个特定的位置时,我想改变重力刻度。这能做到吗?如果是,如何实现。

在我的例子中,我为这样的坠落物体设置了恒定速度

#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);
}

检查位置并使用SetGravityScale:

b2Vec2 pos = body->GetPosition();

if (pos.x > minPosX && pos.x < maxPosX
    && pos.y > minPosY && pos.y < maxPosY) {
        body->SetGravityScale(theScalingFactor);
}