【问题标题】:Animate b2Body with CCSprites?用 CCSprites 为 b2Body 制作动画?
【发布时间】:2011-11-08 00:54:49
【问题描述】:

我想在我的游戏中为我的 b2Body 制作动画。是否可以与它们一起使用 CCActions 或者 Box2D 是否使用不同的动画方式?我拥有的每个 b2Body 都连接到一个 CCSprite,并且 CCSprite 会更新到与之对应的 b2Body 的当前位置。 那么无论如何,我怎样才能使 b2Body 从位置 A 移动到位置 B?

任何提示和建议也会有所帮助。

谢谢!

【问题讨论】:

    标签: ios animation cocos2d-iphone box2d


    【解决方案1】:

    这是我的新代码:

    -(void)addBody
    {
    
        boxImg=[CCSprite spriteWithFile:@"ballImg1.png"];
        boxImg.position=ccp(30,100);
        [self addChild:boxImg];
    
        // Define the dynamic body.
        //Set up a 1m squared box in the physics world
        b2BodyDef bodyDef;
        bodyDef.type = b2_dynamicBody;
    
        bodyDef.position.Set(30.0/PTM_RATIO, 100.0/PTM_RATIO);
        bodyDef.userData = boxImg;
        body1= world->CreateBody(&bodyDef);
    
        // Define another box shape for our dynamic body.
        b2PolygonShape dynamicBox;
        dynamicBox.SetAsBox(.5f, .5f);//These are mid points for our 1m box
    
        // Define the dynamic body fixture.
        b2FixtureDef fixtureDef;
        fixtureDef.shape = &dynamicBox; 
        fixtureDef.density = 1.0f;
        fixtureDef.friction = 0.3f;
        body1->CreateFixture(&fixtureDef);
    
        posx1=300.0;
        posy1=100.0;
        [self performSelector:@selector(moveAni) withObject:nil afterDelay:1.0];
    
    }
     -(void)moveAni
      {
     body1->SetTransform(b2Vec2(posx1/PTM_RATIO, posy1/PTM_RATIO), 0);
     id action = [CCMoveTo actionWithDuration:0.4 position:CGPointMake( b->GetPosition().x * PTM_RATIO, b->GetPosition().y * PTM_RATIO)];
    [boxImg runAction:action];
      }
    

    首先你使用“SetTransform”手动移动身体,然后使用这个功能

    【讨论】:

    • 我不太确定这是如何工作的。您为 CCSprite 设置动画,但在游戏循环中,您将 CCSprite 的位置设置为未设置动画的 b2Body。您介意多解释一下这是如何工作的吗?
    • 嗯,好的,所以您正在动画中移动 b2Body 和 CCSprite。因为在我的情况下,我所有的 CCSprite 都遵循我的 b2Bodys,有什么理由使用 CCMoveTo 吗?您是否尝试过删除该行?
    猜你喜欢
    • 1970-01-01
    • 2011-01-09
    • 1970-01-01
    • 1970-01-01
    • 2017-06-11
    • 1970-01-01
    • 1970-01-01
    • 2015-12-10
    • 1970-01-01
    相关资源
    最近更新 更多