Подтвердить что ты не робот

Возможно ли завершить действие SKAction?

У меня есть подкласс SKSpriteNode (monsterNode). Он автоматически запускается вокруг экрана, используя векторы, чтобы следить за игроком. В настоящее время я использую следующее действие, чтобы запустить его:

SKAction *actionMove = [SKAction moveTo:actualDistance duration:time];
        [self runAction:actionMove completion:^ {
            _currentState = SVGMonsterStateIdle;
        }];

Мне интересно, возможно ли это сделать так, чтобы monsterNode на самом деле STOPS запускал действие, если оно попадает на границу экрана устройства iOS. В настоящее время у меня есть границы SKSpriteNode по краям экрана, связанные с делегатом-контактом, чтобы сообщить, монстр и стены вступают в контакт. Однако это ничего не значит, если я не могу фактически остановить действие actionMove от монстров до завершения. Монстр должен остановиться на границах экрана. Если невозможно остановить среднее выполнение SKAction, есть ли способ обхода кругооборота?

4b9b3361

Ответ 1

Посмотрите заголовочный файл SKNode.h - он имеет две функции:

- (void)removeActionForKey:(NSString *)key;
- (void)removeAllActions;

Последний будет работать: [monsterNode removeAllActions];