ios - 当 Sprite 到达路径末端时,如何从 SpriteKit 重复 Action 中获得回调?

标签 ios sprite-kit skaction skspritenode

我以这种方式创建了我的 SKAction:

unicornAction = [SKAction followPath:mypath asOffset:NO orientToPath:YES duration:0.1];

并将它添加到我的SKSprite:

[sprite runAction:[SKAction repeatActionForever:unicornAction] withKey:@"move"];

我这样做是为了随时调整 Sprite 在路径上的运动速度。

当我的 sprite 到达路径的末端时,我需要一个回调以便我可以删除 sprite。我怎样才能得到这样的回调?

另外,有没有更好的方法来使用 SKAction 来做我想做的事情,同时允许我在 Action 运行期间的任何地方改变速度?

最佳答案

您可以在末尾使用带有 runBlock 或 performSelector 的序列:

SKAction* sequence = [SKAction sequence:@[unicornAction, [SKAction runBlock:^{
    // code at end of path goes here...
}]];

你也可以使用

[sprite runAction:sequence withKey:@"follow path"];

然后通过按键获取操作:

SKAction* sequence = [sprite actionForKey:@"follow path"];

关于ios - 当 Sprite 到达路径末端时,如何从 SpriteKit 重复 Action 中获得回调?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19670590/

相关文章:

ios - 未选择的 UITableView 行列表

swift - 在 SKLabels 的 Sprite-kit 中创建 "fly-in"效果

ios - 将 SKSpriteNode 掩蔽为液体

singleton - SKAction playSoundFileNamed from Singleton

swift - SKAction 完成处理程序;在 Swift 中的用法

swift - 如何获取动画中的帧索引

ios - Xcode 7 beta 2 和 swift 相处不来

ios - 如何重建开发 pod 的变化?

ios - 更改 MKmapView 中图钉的颜色会将新图钉图像以及当前位置变成旧图钉图像?

swift 。我如何获得 node.children 的类型?