2013-04-25 87 views
1

旋转像探测敌人的雷达一样的三角形图像时出现问题。围绕某个点旋转物体Box2D Cocos2d

b2Body *body; 
CCSprite *actor; 



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

     radar = b; 
     radarSprite = myActor; 
    } 

这是一个用LevelHelper制作的运动体,我想旋转它。所以我需要它围绕一个静态点旋转,并向后重复运动。既然它是一个身体而不是一个雪碧,我不知道如何让它围绕顶点旋转

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

非常感谢您

回答

2

以下是我更新的Box2D机构acording到他们的精灵的位置和旋转:

// 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); 
    } 
} 
+1

我觉得这就是我一直在寻找。我会尝试它,但我认为它会起作用!非常感谢你 – mursang 2013-04-30 12:54:21