2011-11-04 55 views
0

我讀從射線wenderlich網站的教程,我發現這個循環:Box2D的奇怪循環(Objective-C中的cocos2d,Box2D的)

for(b2Body *b = _world->GetBodyList(); b; b=b->GetNext()) { 

所以在這裏,b被覆蓋?我覺得這有點奇怪

和下面的代碼:

for(b2Body *b = _world->GetBodyList(); b; b=b->GetNext()) {  
     if (b->GetUserData() != NULL) { 
      CCSprite *ballData = (CCSprite *)b->GetUserData(); 
      ballData.position = ccp(b->GetPosition().x * PTM_RATIO, 
            b->GetPosition().y * PTM_RATIO); 
      ballData.rotation = -1 * CC_RADIANS_TO_DEGREES(b->GetAngle()); 
     }   
    } 

感謝

回答

3

是,B將被覆蓋。但b只是一個指向b2Body對象鏈表的指針。 b的全部目的是指向列表中的每個b2Body,一次一個。

+0

感謝rob,好的,如果我們將它與'for(var i = 0; i Paul

+0

它檢查終止列表的空指針。看看這篇關於鏈接列表的文章:http://cslibrary.stanford.edu/103/LinkedListBasics.pdf –

+0

好吧謝謝你的快速回答! – Paul