4

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

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

并将其添加到我的SKSprite

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

我这样做是为了让我可以在精灵穿过路径的运动中随时调整速度。

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

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

4

2 回答 2

9

您可以在最后使用带有 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"];
于 2013-10-29T22:52:48.440 回答
0

创建第二个 runBlock: 动作,它在动作完成时执行您希望它执行的任何操作,然后使用您的 followPath 和块完成动作创建一个序列:动作。如果您不想使用块,还有一个 performSelector:onTarget: 操作。

https://developer.apple.com/library/ios/documentation/SpriteKit/Reference/SKAction_Ref/Reference/Reference.html

于 2013-10-29T22:53:04.007 回答