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 回答