0

ねえ、私はジャンプスプライトボディに関して別の問題があります。私のコードでは、moveLeftとmoveRight Buttonを使用しており、moveRightButtonを押すと次のコードを使用します。

if (moveRight.active==YES) 
    {
            b2Vec2 force=b2Vec2(4,0);
            ballBody->SetLinearVelocity(force);                
    }

その動きは完璧で、スプライト本体よりもこのボタンを離すと、次のコードの使用を停止します

else
{
      b2Vec2 force=b2Vec2(0,0);
      ballBody->SetLinearVelocity(force); 
} 

しかし、私がこれを他の部分に置くと、ジャンプはできません。私のジャンプコードは次のとおりです

if (jumpSprite.active==YES) 
                {
                    NSLog(@"Jump Sprite");
                    b2Vec2 locationWorld;
                    locationWorld=b2Vec2(0.0f,4.0f);
                    double force=ballBody->GetMass();
                    ballBody->ApplyLinearImpulse(force*locationWorld, ballBody->GetWorldCenter());
                }

他の部分を削除すると、ジャンプは完了しますが、リリースボタンの後でスプライト本体を停止できません。

じゃあ何をすればいいの??

前もって感謝します

4

1 に答える 1

2

答えがわかりました。ボディを作成し、最初にそれが円または多角形であることを確認します。これは、円のボディは転がり抵抗を持つことができないためです。この場合、linearVelocity を 0 にして手動で停止する必要はありません。摩擦を使用すると、円のボディを除いてすべてのボディが自動的に停止します。

于 2012-08-31T06:23:20.083 に答える