If both nodes are uniquely named and are children of the same node, you can use runAction:onChildWithName: as shown below:
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];
More generally, you can use runBlock: to do anything, like a step in the SKAction sequence:
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];
source share