0

スプライトボディのジャンプに問題があります。以下は、スプライト本体をジャンプするための更新方法です。

-(void) update: (ccTime) dt
{

    world->Step(dt, 10, 10);
    // BOOL worldAsleep=true;
    for(b2Body *b=world->GetBodyList();b;b=b->GetNext())
    {
        if(b->GetUserData() !=NULL)
        {

            CCSprite *myActor=(CCSprite *)b->GetUserData();


            myActor.position=ccp(b->GetPosition().x *PTM_RATIO, b->GetPosition().y *PTM_RATIO);
            b->SetTransform(b2Vec2(b->GetPosition().x,b->GetPosition().y), b->GetAngle());

           if (fire.active==YES) 
            {
                id jump=[CCJumpBy actionWithDuration:1 position:ccp(b->GetPosition().x, b->GetPosition().y) height:100 jumps:1];
                [myActor runAction:jump];
                b2Vec2 force = b2Vec2(0,350);                
            }

        }
    }

}

ここで fire.active はスプライトをジャンプさせるためのボタンで、ccjumpto メソッドはスプライトをジャンプさせるために使用されますが、ボディをジャンプさせるにはどうすればよいでしょうか。ジャンプ スプライト ボディには ApplyLinearImpuls を使用しましたが、スプライト タイプのようにジャンプすることはできません。

スプライトジャンプのみのように、スプライトとボディを同じようにジャンプしたい

リプレイありがとう

4

1 に答える 1

1

クリックされたボタンに応じて体をジャンプします。ボタンがクリックされたときにコードの下に置きます。

b2Vec2 locationWorld;
 locationWorld = b2Vec2(0.0f,8.0f);
 double Force= _body->GetMass();
  _body->ApplyLinearImpulse(Force*locationWorld, _body->GetWorldCenter());
于 2012-08-28T11:07:44.063 に答える