2011-11-04 56 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