У меня есть два узла node1 и node2. node1 находится в позиции 0. Когда я нажимаю на экран, он запускает свое действие до тех пор, пока оно не окажется посередине экрана, или пользователь не удалит свой палец с экрана. Как только узел1 достигнет середины экрана, он остановится, а node2 запустит свое действие. Мой код делает это до сих пор.spritekit Как переместить два SKAction на двух разных узлах
Однако, чтобы узел2 выполнял свое действие, пользователь должен удалить свой палец с экрана и снова коснуться его. Я не хочу, чтобы это произошло. Я хочу, чтобы действие для node2 выполнялось после завершения node1 без удаления пользователем пальца с экрана.
В основном пользователь удерживает экранный узел1, запускает его действие, а затем узел2 запускает свое действие.
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
}
}
Я устал сдачи NODE2 действий в обновлении, но это не сработало. –
есть действие последовательности, которое позволяет вам включать несколько действий в цепочку для запуска один за другим. не уверен, что это поможет, поэтому не ставит это в качестве ответа, а проверяет его. –