ios - 是否可以结束 SKAction Action 中途?

标签 ios objective-c sprite-kit skaction

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

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

我想知道是否有可能使 monsterNode 在碰到 iOS 设备屏幕的边界时实际上停止运行该操作。我目前在屏幕边缘有 SKSpriteNode 边界,与接触委托(delegate)链接以通知怪物和墙壁是否接触。但是,如果我不能真正阻止怪物的 actionMove Action 完成,那将毫无意义。怪物需要停在屏幕的边界。如果无法在执行过程中停止 SKAction,是否有迂回的方式来做到这一点?

最佳答案

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

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

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

关于ios - 是否可以结束 SKAction Action 中途?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19041610/

相关文章:

ios - 自动单词生成器

ios - 如何在 tableViewCell 周围添加 10px 的空间?

ios - 在静态表格 View 中更改单元格的选择颜色

iphone - 如何在同一场景的单独层中预加载游戏资源

ios - 在哪里使用 CGPathRelease?

iphone - 调整大型 UITable 的大小会使应用程序停止运行

ios - UIImagePickerController takePicture 解除 Controller

ios - collectionViewLayout sizeForItemAtIndexPath -> CGSize 奇怪的行为

ios - SKCameraNode 跟不上移动节点

swift - 1 个大的 sktilemapnode 或更小的 sktilemapnode