Я массив под названием spriteArray:NSMutableArray из экземпляров спрайтов
@property (retain) NSMutableArray *spriteArray;
@synthesize spriteArray = spriteArray_;
И у меня есть спрайт
@property (nonatomic, assign) CCSprite *sprite;
@synthesize sprite = sprite_;
я создаю определенное количество спрайтов в зависимости от значения spriteNumber (целое число):
for (int i = 0; i < spriteNumber; i++) {
if ([spritetype_ isEqualToString:@"typeOne"]) {
self.sprite = [[typeOne alloc] initTypeOne];
self.sprite.position = randomPoint;
[self.spriteArray addObject:self.sprite];
[self addChild:self.sprite];
}}
Спринты инициализируются успешно и отображаются на экране так, как должны. Однако, когда я пытаюсь использовать их для обнаружения столкновений, только один из них работает:
if (CGRectIntersectsRect(self.sprite.boundingBox, self.swat.boundingBox)) {
//swat is another sprite
NSLog(@"detected");
}
То, что я хотел, чтобы «индекс» каждый из спрайтов, как они создаются, так что работает обнаружение столкновений.
ОБРАЗЦА КОД: http://pastebin.com/swNUwB6U
Когда я пытаюсь это, теги только один из спрайтов, и использует тег 4 – akuritsu
Вы обращаетесь спрайт неправильно. Вам не нужно делать спрайт как свойство вашего класса. Использование переменных экземпляра и добавление его в ваш NSMutableArray. Я обновил код, чтобы показать вам, как это делается. –
typeOneSprite * спрайтOne = (typeOneSprite *) obj; дает ошибку: использование необъявленного идентификатора «typeonesprite» означает «typeOneSprite_»? – akuritsu