SKAction持续时间淡出

时间:2014-04-01 15:54:18

标签: sprite-kit skaction skemitternode

当我触摸屏幕时,我尝试添加一个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]];

1 个答案:

答案 0 :(得分:1)

您需要显式检查数组中的每个节点是否是SKEmitterNode类的实例。

for (SKEmitterNode *node in childs) {

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

}