Sprite kit SKAction转到并在特定帧处停止

Sprite kit SKAction转到并在特定帧处停止,sprite-kit,Sprite Kit,Flash提供了gotoAndPlay()和gotoAndStop()方法,用于电影剪辑跳到任何帧。我在SKAction类中没有看到任何方法,但有没有一种方法或解决方法可以模拟SKAction实例的这种情况 编辑:关于gotoAndPlay和gotoAndStop的附加信息:gotoAndPlay(n)将播放头带到第n帧。如果剪辑长度为30帧,您调用gotoAndPlay(15),则从第15帧开始播放,并在30帧停止播放。gotoAndStop(n)将动画移到第n帧并停止播放。从第x帧播放到第y

Flash提供了gotoAndPlay()和gotoAndStop()方法,用于电影剪辑跳到任何帧。我在SKAction类中没有看到任何方法,但有没有一种方法或解决方法可以模拟SKAction实例的这种情况


编辑:关于gotoAndPlay和gotoAndStop的附加信息:gotoAndPlay(n)将播放头带到第n帧。如果剪辑长度为30帧,您调用gotoAndPlay(15),则从第15帧开始播放,并在30帧停止播放。gotoAndStop(n)将动画移到第n帧并停止播放。

从第x帧播放到第y帧没有动作。但它很容易复制,因为动画动作

+ (SKAction *)animateWithTextures:(NSArray *)textures 
                     timePerFrame:(NSTimeInterval)sec
。。将一组纹理作为输入。您可以仅使用要播放的特定帧纹理创建阵列,或者如果您已经有一个包含所有纹理的阵列
allFrames
,您可以获得一个包含所需帧的新阵列,例如,如果您要从第15帧播放到最后:

NSRange range = NSMakeRange(15, allFrames.count - 15);
NSArray* animFrames = [allFrames subarrayWithRange:range];
SKAction anim = [SKAction animateWithTextures:animFrames timePerFrame:0.1];

这些flash方法到底做了什么?不是每个人都知道flash,你是对的。我编辑了我的问题。谢谢很好的解决方案,刚刚遇到这个。我试图找到一种方法,让我在多个精灵上使用的给定动画从循环动画的不同帧开始,这样它们就不会全部同步。对于SKSpriteNode来说,这绝对是一个不错的类别。