Objective c 使用不同的节点运行SKActions序列
我知道我可以创建一个SKAction.sequence,它将逐个运行一个节点的操作。但是如果我想对不同的节点进行排序,我该怎么做呢。我想这样做:Objective c 使用不同的节点运行SKActions序列,objective-c,sprite-kit,sequence,skaction,Objective C,Sprite Kit,Sequence,Skaction,我知道我可以创建一个SKAction.sequence,它将逐个运行一个节点的操作。但是如果我想对不同的节点进行排序,我该怎么做呢。我想这样做: 从节点A运行操作 等2秒钟 从节点B运行操作 如果两个节点的名称都是唯一的,并且都是同一节点的子节点,则可以使用运行操作:onChildWithName:,如下所示: SKAction *action = [SKAction sequence: @[[SKAction runAction:[SKAction moveTo:CGPointMake
如果两个节点的名称都是唯一的,并且都是同一节点的子节点,则可以使用
运行操作:onChildWithName:
,如下所示:
SKAction *action = [SKAction sequence:
@[[SKAction runAction:[SKAction moveTo:CGPointMake(200.0f, 200.0f) duration:1.0f]
onChildWithName:@"NODEA"],
[SKAction waitForDuration:2.0f],
[SKAction runAction:[SKAction moveTo:CGPointMake(200.0f, 200.0f) duration:1.0f]
onChildWithName:@"NODEB"]]];
[parent runAction:action];
更一般地说,您可以使用runBlock:
作为SKAction序列中的一个步骤来执行几乎任何操作:
SKAction *action = [SKAction sequence:
@[[SKAction runBlock:^{
[nodeA runAction:[SKAction moveTo:CGPointMake(200.0f, 200.0f) duration:1.0f]];
}],
[SKAction waitForDuration:2.0f],
[SKAction runBlock:^{
[nodeB runAction:[SKAction moveTo:CGPointMake(200.0f, 200.0f) duration:1.0f]];
}]]];
[parent runAction:action];
感谢您的回答@godel9您能给我看一些示例代码吗?请注意,
runBlock:
和runAction:onChildWithName:
根据文档都以“瞬时持续时间”运行,因此如果没有waitForDuration:
操作,此序列将立即运行所有操作。