Objective c cocos2D游戏在尝试删除子对象时崩溃
在init方法中,我初始化了一个包含4个映像的NSMutableArray。我使用此代码来随机放置精灵(图像):Objective c cocos2D游戏在尝试删除子对象时崩溃,objective-c,cocos2d-iphone,Objective C,Cocos2d Iphone,在init方法中,我初始化了一个包含4个映像的NSMutableArray。我使用此代码来随机放置精灵(图像): \u障碍物=[[NSMutableArray alloc]initWithCapacity:每堵墙的障碍物总数]; 对于(int i=0;i
\u障碍物=[[NSMutableArray alloc]initWithCapacity:每堵墙的障碍物总数];
对于(int i=0;i<每堵墙的总障碍物;i++)
{
障碍物=[CCSprite spriteWithTexture:obstaclesTxt];
int minX=barrier.contentSize.width/2;
int maxX=winSize.width-barrier.contentSize.width/2;
int xRange=maxX minX;
int minY=barrier.contentSize.height/2;
int maxY=winSize.height-barrier.contentSize.height/2;
int-yRange=maxY-minY;
randomXloc=(arc4random()%xRange)+minX;
randomYloc=(arc4random()%yRange)+minY;
障碍物位置=ccp(随机xloc,随机yloc);
[u wall2 addChild:障碍];
}
然后,在更新方法中,如果_wall2将屏幕左移(从右向左连续滚动),则应清除障碍物
if (_wall2.position.x+_wall2.boundingBox.size.width <- 0)
{
_wall2.position = ccp(_wall.boundingBox.origin.x+_wall.boundingBox.size.width+1, 0);
[obstacle removeFromParentAndCleanup:YES];
}
if(_wall2.position.x+_wall2.boundingBox.size.width)不使用圆弧?您应该保留(并在以后释放)障碍物。障碍物用于什么(您没有修改其内容)?在输入底部代码段的“if”之前,“障碍物”设置为什么?设置为什么意思你在哪里设置?比如障碍=???…可能会显示更多的代码。啊,我在障碍中设置了它。障碍数组也显示在上面的代码中。你的障碍在“更新方法”中是什么?局部变量,ivar,等等?
if (_wall2.position.x+_wall2.boundingBox.size.width <- 0)
{
_wall2.position = ccp(_wall.boundingBox.origin.x+_wall.boundingBox.size.width+1, 0);
[obstacle removeFromParentAndCleanup:YES];
}