我知道我可以创建一个 SKAction.sequence 它将一一运行一个节点的操作。但是,如果我想用不同的节点执行序列,我该怎么做呢?我想做这样的事情:
- 从节点 A 运行操作
- 等待 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];
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)