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, потому что я должен "отобразите» узел на полпути через. Я неЯ не могу выразить это в последовательности, если я неЯ тоже ошибаюсь.)

Ответы на вопрос(3)

Ваш ответ на вопрос