Можно ли прекратить SKAction в середине действия?
У меня есть подкласс SKSpriteNode (monsterNode). Он автоматически бегает по экрану, используя векторы, чтобы следовать за игроком. В настоящее время я использую следующее действие, чтобы заставить его бегать:
SKAction *actionMove = [SKAction moveTo:actualDistance duration:time];
[self runAction:actionMove completion:^ {
_currentState = SVGMonsterStateIdle;
}];
Я задаюсь вопросом, возможно ли сделать это так, чтобы monsterNode фактически ОСТАНАВЛИВАЛ выполнение действия, если оно достигает границы экрана устройства iOS. В настоящее время у меня есть границы SKSpriteNode по краям экрана, связанные с делегатом контакта, чтобы уведомить, если монстр и стены вступают в контакт. Однако это ничего не значит, если я не могу остановить действие actionMove монстра от его завершения. Монстр должен остановиться на границах экрана. Если невозможно остановить исполнение SKAction в середине, есть ли обходной способ сделать это?
1 ответ
Посмотрите на SKNode.h
Заголовочный файл - в нем две функции:
- (void)removeActionForKey:(NSString *)key;
- (void)removeAllActions;
Последний будет работать: [monsterNode removeAllActions];