2

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

1 回答 1

1

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

for (SKEmitterNode *node in childs) {

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

}
于 2014-04-01T16:20:04.710 回答