arrays - 销毁一组 CCPhysicsSprites

标签 arrays cocos2d-iphone box2d box2d-iphone

在我在更新方法中调用的下面的代码中,当数组元素离开屏幕时,CCPhyscisSprites 被移除并且它们的主体被销毁。我放了一个 CCLOG 来检查数组计数,当所有 Sprite 都不在屏幕上时,我总是得到 1。虽然我没有看到 Sprite ,但它很可能还在附近。可能是什么原因,我该如何解决?

-(void)ballScheduler   {

if (ballArray != NULL) {
    for (int i = 0; i < ballArray.count; i++) {
        CCLOG(@"ball array count is %d", ballArray.count);
        CCPhysicsSprite* ballPhysicsSprite = [ballArray objectAtIndex:i];
        b2Vec2 ballForce = b2Vec2(forceX, forceY);
        ballPhysicsSprite.b2Body->ApplyForce(ballForce, ballPhysicsSprite.b2Body->GetWorldCenter());

          if (ballPhysicsSprite.position.x < -ballPhysicsSprite.contentSize.width/2) {
              ballWorld->DestroyBody(ballPhysicsSprite.b2Body);
              ballPhysicsSprite.b2Body = NULL;
              [ballArray removeObject:ballPhysicsSprite];
              [ballBatchNode removeChild:ballPhysicsSprite];
         }
      }
   }
}

最佳答案

在遍历数组时不要从数组中删除对象。

关于arrays - 销毁一组 CCPhysicsSprites,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18558831/

相关文章:

php - array($this, $some_method_string) 是什么意思?

iphone - 如何在 cocos2d 中获得跟随 Sprite 的粒子效果?

ios - cocos2d 横向游戏目前纵向 View Controller

javascript - Cocos2d-JS 3.0 迁移

android - AndEngine 追逐相机不跟随 body

physics - 使用Box2D模拟 "Newton'万有引力定律

python - 如何在维护索引的同时将一个 numpy 数组的内容复制到另一个?

javascript过滤对象数组

javascript - 是否有与 Array.prototype.find() 等效的 Javascript 可以在旧版浏览器上运行?

java - 如何获取 Box2D 多边形的坐标?