iOS SpriteKit SKAction вызов завершения не работает / создает странные результаты
я пытаюсь заставить SKNode перемещаться на экран по команде. Я'Настройте следующую цепочку SKAction таким образом, чтобы 1) узел перемещался вверх и за экран, затем 2) узел перемещался вниз в начальную позицию, затем 3) начинал двигаться. Я'мы использовали следующий код, чтобы попытаться реализовать это:
SKAction *moveUp = [SKAction moveTo: shipIntroSpot1 duration:3.0];
SKAction *moveDown = [SKAction moveTo:shipSpot1 duration:ship1MovementSpeed];
[self enumerateChildNodesWithName:@"ship1" usingBlock:^(SKNode *node, BOOL *stop) {
NSLog(@"RUNNING MOVE UP");
[node runAction: moveUp];
[node runAction:moveUp completion:^{
NSLog(@"RUNNING MOVE DOWN");
[node setHidden: NO];
[node runAction: moveDown];
}];
[node runAction:moveDown completion:^{
NSLog(@"STARTING MOVEMENT");
}];
Тем не менее, SKActions неКажется, стрельба в правильном порядке. Я использовал код, чтобы после завершения одного шага начался следующий. Тем не менее, SKAction не 'По-видимому, перемещение узла происходит достаточно быстро, прежде чем начнет работать следующая SKAction. У меня сложилось впечатление, что использование вызова завершения означает, что следующее действие неначать, пока предыдущий не закончился? Это не похоже на случай здесь. Кроме того, если я оставлю достаточно длительную продолжительность для шага 1 (ДВИЖЕНИЕ ВВЕРХ), он пропустит шаг 2 (ДВИЖЕНИЕ ВНИЗ) и начнет выполнение шага 3 (НАЧАТЬ ДВИЖЕНИЕ). Я понятия не имею, как это возможно. Если бы кто-нибудь мог указать на мою ошибку в понимании того, как правильно соединить различные действия, я был бы признателен.
(Я не делал последовательность SKAction, потому что я должен "отобразите» узел на полпути через. Я неЯ не могу выразить это в последовательности, если я неЯ тоже ошибаюсь.)