2013-04-25 132 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