У меня есть узел Cat и узел Bird. Узлы-птицы вложены вместе в узел-контейнер, называемый BirdBlock. Все содержится в WorldNode. Если я добавлю птицу в WorldNode, Cat сможет взаимодействовать с ней соответствующим образом, но когда птицы находятся в birdBlock, Cat просто отталкивает их в сторону, и они летят.
Я использую следующее, чтобы найти моих птиц:
[worldNode enumerateChildNodesWithName:kBirdName usingBlock:^(SKNode *node, BOOL *stop)
{
SKSpriteNode *newBird = (SKSpriteNode *)node;
if (CGRectIntersectsRect(newBird.frame,cat.frame))
{
//Do Something
//This is never reached when the birds are in the SKSpriteNode birdBlock.
//They just get shoved all over the screen.
}
}];
Птицы в блоке имеют правильное название.
Сейчас они пересчитываются, но по-прежнему не взаимодействуют с кошкой, кроме как летают по экрану.
Теперь я делаю это:
[[worldNode children] enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop)
{
SKSpriteNode *blockNode = (SKSpriteNode *)obj;
if ([blockNode.name isEqualToString:kBirdBlockName])
{
[blockNode enumerateChildNodesWithName:kBirdName usingBlock:^(SKNode *node, BOOL *stop)
{
SKSpriteNode *nbird = (SKSpriteNode *)node;
NSLog(@"FOUND BIRDS HERE");
//THIS IS FOUND! But below still does not work
if (CGRectIntersectsRect(nbird.frame, cat.frame))
{
NSLog(@"Hit BIRD");
[nbird removeFromParent];
}
}
}
}];
Так что это тоже не работает. Как изменить систему координат спрайта?