-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」はスプライトをスパム送信します。「InaSpecialCase」最後に作成されたスプライトを削除したい。また、それを削除すると、そのインスタンスの現在の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 に答える