2012-05-06 2 views
-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» рассылает спрайты. «В aSpecialCase» я хочу удалить последний спрайт, который был создан. Также надеясь, что его удаление закончит текущее CCSequence для этого экземпляра.NSMutableArray, добавить спрайт и удалить последний объект (последний добавленный спрайт)?

+0

Что происходит вместо этого? –

+0

Привет, прежде всего, я исправил небольшую ошибку с массивом. Теперь он работает. Объект добавляется и удаляется. Но после удаления (вызов aSpecialCase), функция «createSprite» не создает больше спрайтов при вызове. – Magnus

+0

Хорошо, но что происходит вместо этого? Какова ценность 'shotV' после первой строки? Что, если что-нибудь происходит с 'shotVArray'? Вы получаете какой-либо вывод в консоли? –

ответ

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

Это только удаляет спрайт из слоя .. Не удаляю его из самого массива ...

Так может быть лучше ..

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

Надеется, что это помогает ..:)

+0

Спасибо, я решил. – Magnus

Смежные вопросы