是否有可能结束SKAction中期行动?

Evi*_*gis 21 objective-c ios sprite-kit skaction

我有一个SKSpriteNode(monsterNode)的子类.它会使用矢量自动在屏幕上运行以跟随播放器.我目前正在使用以下操作来使其运行:

SKAction *actionMove = [SKAction moveTo:actualDistance duration:time];
        [self runAction:actionMove completion:^ {
            _currentState = SVGMonsterStateIdle;
        }];
Run Code Online (Sandbox Code Playgroud)

我想知道是否有可能使它如此怪物节点实际上STOPS运行动作,如果它击中iOS设备屏幕的边界.我目前在屏幕边缘有SKSpriteNode边界,与联系代表链接,以通知怪物和墙壁是否接触.但是,如果我无法阻止怪物的动作动作从完成开始,那就没有任何意义.怪物需要停在屏幕的边界.如果无法在执行中停止SKAction,是否有迂回的方法呢?

小智 37

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

- (void)removeActionForKey:(NSString *)key;
- (void)removeAllActions;
Run Code Online (Sandbox Code Playgroud)

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

  • 编辑:而不是`[node runAction:myaction]`,使用`[node runAction:myaction withKey:@"mykey"]`;. (2认同)