使用ccJumpto跳转精灵体

时间:2012-08-28 08:59:31

标签: cocos2d-iphone box2d-iphone

我在跳跃精灵体方面有问题。以下是跳转精灵体的更新方法

-(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但它不能像精灵类型一样跳跃。

我想像精灵跳跃一样跳过精灵和身体

感谢重播

1 个答案:

答案 0 :(得分:1)

嘿,你点击按钮时按下按钮,点击按钮时你将下面的代码放在下面:

b2Vec2 locationWorld;
 locationWorld = b2Vec2(0.0f,8.0f);
 double Force= _body->GetMass();
  _body->ApplyLinearImpulse(Force*locationWorld, _body->GetWorldCenter());