我已经以这种方式创建了SKAction
:
unicornAction = [SKAction followPath:mypath asOffset:NO orientToPath:YES duration:0.1];
并将其添加到我的SKSprite
:
[sprite runAction:[SKAction repeatActionForever:unicornAction] withKey:@"move"];
我这样做是为了让我可以在精灵运动中随时调整速度。
当我的精灵到达路径的末尾时,我需要一个回调,以便我可以删除精灵。我怎样才能得到这样的回调?
另外,有没有更好的方法使用SKAction
来做我想做的事情,同时允许我在动作运行期间的任何地方改变速度?
答案 0 :(得分: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"];
答案 1 :(得分:0)
创建第二个runBlock:动作,在动作完成时执行您希望它执行的任何操作,然后使用您的followPath和块完成动作创建一个序列:action。如果您不想使用块,还有一个performSelector:onTarget:action。