2014-09-13 13 views
5

Ich weiß, dass ich eine SKAction.sequence erstellen kann, die die Aktionen von einem Knoten einzeln ausgeführt werden. Aber wie kann ich das machen, wenn ich eine Sequenz mit verschiedenen Knoten machen will? Ich möchte so etwas tun:Run SKActions Sequenz mit verschiedenen Knoten

  1. Run Aktion von Knoten A
  2. 2 Sekunden warten
  3. Run Aktion von dem Knoten B
+0

Danke für Ihre Antwort @Godel9 Könnten Sie mir einen Beispielcode zeigen? – Christian

Antwort

8

Wenn beide Knoten eindeutig benannt werden und sind Kinder des gleichen Knoten können Sie runAction:onChildWithName: verwenden, wie folgt:

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]; 

Allgemeiner können Sieverwenden, um so ziemlich alles als Schritt in einer SKAction Sequenz zu tun:

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];