0

box2d と cocos2d に関して 1 つの問題があります。私の世界は無重力で、タイル ベース ゲームで作業しています。スプライトの動きと完璧な動きにこっそりジョイスティックを使用していますが、ジョイスティックにポイントを離すと、何らかの力でスプライトの体が止まらなくなります。ジョイスティックを離したときにスプライトの動きを止めたいです。

-(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());    

}

ここで、scaledVelocity 値はおよそ 0 から 1 です。ジョイスティックを離すと、ジョイスティックの時間値は 0.0 になります。

過去5日間から立ち往生している私を助けてください。私を助けてください。

前もって感謝します

4

2 に答える 2

5

b2Body をすぐに停止するか、減速する (そして最終的に停止する) ようにしますか?

すぐに停止するには:

ballBody->SetLinearVelocity(b2Vec2(0,0));

遅くするには:

ballBody->SetLinearDamping(10.0); // experiment with the damping factor value until you get the right deceleration
于 2012-08-01T14:26:47.110 に答える
0

この質問に対する答えを確認する必要があります: ボックス 2d でボディに作用する力を停止する方法

ジョイスティックを放したら、box2d 本体の速度をリセットする必要があります。

于 2012-08-01T10:44:13.047 に答える