在零重力下停止身体运动

Lee*_*ena 0 gravity cocos2d-iphone box2d-iphone

我有一个关于box2d和cocos2d的问题.我的世界没有引力,我在瓦片基础游戏中工作.我正在使用潜行操纵杆来移动精灵并且它的移动完美但是当我释放指向操纵杆时,我的精灵身体因为一些力量而无法停止.我想在操纵杆释放时停止精灵的移动.

-(void)update:(ccTime)dt :(b2Body *)ballBody :(CCSprite *)player
{
    CGPoint scaledVelocity=ccpMult(joysticks.velocity, 2);

    NSLog(@"Joystick Velocity X: %f",joysticks.velocity.x);
    NSLog(@"Joystick Velocity Y: %f",joysticks.velocity.y);

b2Vec2 force=b2Vec2(scaledVelocity.x/PTM_RATIO,scaledVelocity.y/PTM_RATIO);
       ballBody->ApplyLinearImpulse(force, ballBody->GetWorldCenter());    

}
Run Code Online (Sandbox Code Playgroud)

这里scaledVelocity值是近似0到1.当我释放操纵杆时,操纵杆的时间值是0.0

请帮助我,因为过去5天我被卡住了.请帮我.

提前致谢

Luk*_*man 5

你想让b2Body立即停止或减速(并最终停止)吗?

要立即停止:

ballBody->SetLinearVelocity(b2Vec2(0,0));
Run Code Online (Sandbox Code Playgroud)

为了减慢速度:

ballBody->SetLinearDamping(10.0); // experiment with the damping factor value until you get the right deceleration
Run Code Online (Sandbox Code Playgroud)