SKAction исчезает с длительностью

Я пытаюсь добавить узел Emmiter, когда касаюсь экрана, и удалить его (исчезнуть), когда отпускаю палец. Но я хочу, чтобы первый узел оставался на экране. Что я делаю не так?

NSMutableArray *childs = [NSMutableArray arrayWithArray:self.children];
[childs removeObjectAtIndex:0];

for (SKEmitterNode *node in childs) {
    [node runAction:[SKAction sequence:@[ [SKAction fadeOutWithDuration:1], [SKAction waitForDuration:3], /*[SKAction removeFromParent]*/ ]]];
}

Он запускает только первое действие. остальные оба работают. Но затухание работает, когда я пробую его со своим первым узлом:

[self.children[0] runAction:[SKAction fadeOutWithDuration:1]];

person Sam    schedule 01.04.2014    source источник
comment
попробуйте в простом тестовом проекте, можно ли вообще затухать узлы SKEmitterNode   -  person LearnCocos2D    schedule 01.04.2014


Ответы (1)


Вам необходимо явно проверить, является ли каждый узел в массиве экземпляром класса SKEmitterNode.

for (SKEmitterNode *node in childs) {

    if ([node isKindOfClass:[SKEmitterNode class]])
    {
        [node runAction:[SKAction sequence:@[ [SKAction fadeOutWithDuration:1], [SKAction waitForDuration:3], [SKAction removeFromParent] ]]];
    }

}
person ZeMoon    schedule 01.04.2014