我希望NSMuttableArray中的每个对象都能出现4秒。而不是消失。并通过这种方式迭代来自数组的所有项目。而我得到的结果是所有项目都出现,并且在期间后一起消失。带时间延迟的目标c循环
-(void)showTreasures{
for (int i = 0; i < _treasures.count; i++)
{
SKSpriteNode *obj = [_treasures objectAtIndex:i];
SKAction *show = [SKAction runBlock:^{
obj.hidden = NO;
}];
SKAction *wait = [SKAction waitForDuration:4];
SKAction *hide = [SKAction runBlock:^{
obj.hidden = YES;
}];
SKAction *sequence = [SKAction sequence:@[show, wait, hide]];
[obj runAction:sequence completion:^{
NSLog(@"Item %d", i);
}];
}
}
'runAction:completion:'是异步的。它启动该动作,然后立即返回。你正在快速连续地开始'_treasures.count'独立行动,所以它们似乎会同时发生。您可能需要一个序列,其中包含所有操作,因为您希望它们互相依赖。或者,使用runBlock操作作为最后一个操作,并让它创建要执行的下一个操作序列。 –