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