-1
-(void)createSprite{

CCSprite *shotV = [CCSprite spriteWithFile:@"green.png"];

[self addChild:shotV z:1];

[shotVArray addObject:shotV];
NSlog(@"%@",shotV);

}     
-(void)aSpecialCase{

[self removeChild:[shotVArray lastObject] cleanup:YES];

}

我没有让这个工作。函数“createSprite”向 sprite 发送垃圾邮件。“在 aSpecialCase 中”我想删除最后一个创建的精灵。还希望删除它会结束该实例的当前 CCSequence。

4

1 回答 1

1
-(void)aSpecialCase{
[self removeChild:[shotVArray lastObject] cleanup:YES];
}

这只会从层中删除精灵。不会从数组本身中删除它...

所以更好的方法是..

-(void)aSpecialCase{
  CCSprite *sprite  = [pshotVArray lastObject];
  [self removeChild:sprite cleanup:YES];
  [pshotVArray removeObject:sprite];
}

希望这可以帮助.. :)

于 2012-05-07T05:30:14.257 回答