0

どうすればスプライトがジャンプして元の場所に戻ることができますか?? iPhoneアプリでbox2d物理エンジンを使用しています。インパルスを使用していますが、正しく動作しません。

私に教えてくれるよりも、ロジックやコードを知っている人はいますか。

-(void)jump
{
    b2Vec2 pos=ballbody->GetPosition();
 //   float vel=ballbody->GetAngularVelocity();
    double radian=atan2(pos.x+10, pos.y+10);
    float angle=CC_RADIANS_TO_DEGREES(radian);
    NSLog(@"Angle: %f",angle);
     float impulseFactor = 1.0;
   float force=ballbody->GetMass()*10;
    //force/=6.0;
    //b2Vec2 force=b2Vec2(0,50.0f);
  //  float apply=force*JUMP_IMPULSE*impulseFactor;
    ballbody->ApplyLinearImpulse(b2Vec2(angle,force), ballbody->GetWorldCenter());

 //  [self applyLinearImpulse:b2Vec2(0,[self mass]*JUMP_IMPULSE*impulseFactor) point:[self worldCenter]];

}

ありがとう

4

1 に答える 1

0
  1. 重力が設定されているかどうかを確認してください
  2. 特定の角度に重力を設定しない場合は、力を加えたことになります。
  3. 3番目のケースは、その位置を書き留めます...現在の位置を取得します...角度を取得します....線速度をその角度に設定します....位置を確認し続け、その位置に到達するとすぐに線速度をゼロに設定します..... (これは紛らわしいように聞こえますが、私はあなたの問題を完全には理解していなかったので、私が理解した限り、私はこれだけしか助けることができません)
于 2014-01-14T10:38:41.667 に答える