1

旋转三角形图像(如雷达探测敌人)时出现问题。

b2Body *body;
CCSprite *actor;



if (b->GetType() == b2_kinematicBody && myActor == [loader spriteWithUniqueName:@"radar."]){

        radar = b;
        radarSprite = myActor;
    }

这是一个用 LevelHelper 制作的运动体,我想旋转它。所以我需要它围绕一个静态点旋转,并向后重复运动。由于它是 Body 而不是 Sprite,我不知道如何让它围绕 top point 旋转

我有一个想法,但我不确定。如果我旋转 CCSprite 并将 Body 移动到 sprite.position 会怎样?可能吗?

非常感谢

4

1 回答 1

2

以下是我如何根据他们的精灵更新 box2d 身体的位置和旋转:

// Box2d updates.
// We set position of b2Bodies according to their sprites.
_world->Step(delta, 10, 10);
for(b2Body *b = _world->GetBodyList(); b; b=b->GetNext())
{
    if (b->GetUserData() != NULL)
    {
        GameObject *sprite = (GameObject *)b->GetUserData();
        b2Vec2 b2Position = b2Vec2(sprite.position.x/PTM_RATIO,
                                   sprite.position.y/PTM_RATIO);

        float32 b2Angle = -1 * CC_DEGREES_TO_RADIANS(sprite.rotation);
        b->SetTransform(b2Position, b2Angle);
    }
}
于 2013-04-30T08:57:15.563 回答