21

我有一个 SKSpriteNode (monsterNode) 的子类。它使用矢量自动在屏幕上运行以跟随玩家。我目前正在使用以下操作使其运行:

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

我想知道是否有可能做到这一点,因此如果 monsterNode 到达 iOS 设备屏幕的边界,它实际上会停止运行该操作。我目前在屏幕边缘有 SKSpriteNode 边界,与联系代表链接以通知怪物和墙壁是否接触。但是,如果我不能真正阻止怪物的 actionMove 动作完成,那将毫无意义。怪物需要停在屏幕的边界。如果无法在 SKAction 中途停止执行,是否有迂回的方法可以这样做?

4

1 回答 1

37

查看SKNode.h头文件 - 它列出了两个函数:

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

后者将起作用:[monsterNode removeAllActions];

于 2013-09-27T02:14:28.727 回答