Ich habe zwei Knoten node1 und node2. Knoten1 ist auf Position 0. Wenn ich auf den Bildschirm klicke, wird seine Aktion ausgeführt, bis sie in der Mitte des Bildschirms erscheint oder der Benutzer den Finger vom Bildschirm entfernt. Sobald node1 die Mitte des Bildschirms erreicht, wird es gestoppt und node2 wird seine Aktion ausführen. Mein Code macht das bisher.spritekit wie zwei SKAction auf zwei verschiedenen Knoten zu überführen
Damit jedoch node2 seine Aktion ausführen kann, muss der Benutzer seinen Finger vom Bildschirm entfernen und ihn erneut berühren. Ich möchte nicht, dass das passiert. Ich möchte, dass die Aktion für node2 ausgeführt wird, nachdem node1 beendet wurde, ohne dass der Benutzer seinen Finger vom Bildschirm entfernt hat.
Im Grunde hält der Benutzer den Bildschirm node1 hält seine Aktion beendet und dann führt node2 seine Aktion aus.
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
let Node1Move=SKAction.moveBy(x:50,y:0,duration:0.6)
let node1rep=SKAction.repeatForever(Node1Move)
node1.run(node1rep)
if modeNode2==1{
let node2move=SKAction.moveBy(x:-10,y:0,duration:0.9)
let node2Rep=SKAction.repeatForever(node2move)
node2.run(node2Rep)
}
}
override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) {
node1.removeAllActions()
node2.removeAllActions()
}
override func update(_ currentTime: TimeInterval) {
if node1.position.x+node1.frame.width > self.frame.width/2{
node1.removeAllActions()
moveNode2=1
}
}
ich müde, um die Knoten2 Aktionen in Update setzen, aber das hat nicht funktioniert. –
Es gibt eine Sequenzaktion, mit der Sie mehrere Aktionen in einer Kette nacheinander ausführen können. Ich bin mir nicht sicher, ob das hilft, also werde ich das nicht als eine Antwort betrachten, aber schau es dir an. –