我知道我可以创建一个 SKAction.sequence,它将一个接一个地运行一个节点的 Action 。但是如果我想用不同的节点做一个序列,我该怎么做。我想做这样的事情:
- 从节点A运行 Action
- 等2秒
- 从节点 B 运行操作。
最佳答案
如果两个节点都是唯一命名的并且是同一节点的子节点,则可以使用runAction: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];
关于objective-c - 使用不同的节点运行 SKActions 序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25823428/