Cocos2D: доступ к объектам CGRect из цикла - PullRequest
0 голосов
/ 13 февраля 2012

Экспериментируйте с обнаружением коллекции Cocos2D и задайте несколько вопросов.Сначала немного предыстории:

Это мой метод добавления нового элемента в мою игру, который находится в другом классе, чем мой игровой слой.Это находится в моем классе предметов:

-(void) addItem:(NSString *) theFileName: (NSMutableArray *) theArray{

        CCSprite *item = [CCSprite spriteWithFile:theFileName
                                            rect:CGRectMake(0, 0, 50, 50 )];

        //Positions


        int minX = 160;
        int maxX = 360; 
        int xRange = maxX - minX;
        int xCord = (arc4random() % xRange) + minX;


        item.position = ccp(xCord, -5);

    [self addChild:item];

    [theArray addObject:item];

Затем я использую этот метод в своем игровом слое, используя ссылку на класс предметов под названием ItemManager:

[ItemManager addItem:@"box.png" :itemList];    

Если яЯ хочу обнаружить столкновение между двумя спрайтами, в данном случае блоком и чем-то еще, мне нужно иметь возможность использовать прямоугольник прямоугольника, созданный в методе addItem.

for(CCSprite *newItem in itemList){
//(if box rectangle collides with my players or whatever 

}

Так как я могу получить доступ к прямоугольникусоздал весь путь назад в оригинальном методе?

Спасибо.

1 Ответ

0 голосов
/ 13 февраля 2012

В этом случае я бы предложил использовать свойство boundingBox CCSprite для обнаружения столкновений:

Пример:

for(CCSprite *newItem in itemList) 
{
    // if box rectangle collides with my players or whatever 
    if (CGRectContainsRect([newItem boundingBox], [player boundingBox])) 
        // do something
} 
...