Ios Swift-添加动画和声音:使用带纹理的动画:

Ios Swift-添加动画和声音:使用带纹理的动画:,ios,swift,animation,sprite-kit,swift2,Ios,Swift,Animation,Sprite Kit,Swift2,我正在尝试创建一种特定类型的动画,它要求声音和动画在每个纹理周期中精确出现1秒 每次有人单击一个按钮时,它都会将一个新纹理附加到一组SKTextures[],然后我会让一个SKSpriteNode对每个纹理进行一次动画制作。唯一的问题是,我似乎无法找到一种方法来播放每个纹理的动画声音文件。我还想为SKSpriteNode在穿过纹理时更改的每个纹理创建一个动画 以下是流程的一个示例: 点击按钮 附加纹理数组 SKSpriteNode.animateUsingTextures(SKTextureAr

我正在尝试创建一种特定类型的动画,它要求声音和动画在每个纹理周期中精确出现1秒

每次有人单击一个按钮时,它都会将一个新纹理附加到一组SKTextures[],然后我会让一个SKSpriteNode对每个纹理进行一次动画制作。唯一的问题是,我似乎无法找到一种方法来播放每个纹理的动画声音文件。我还想为SKSpriteNode在穿过纹理时更改的每个纹理创建一个动画

以下是流程的一个示例:

点击按钮

附加纹理数组

SKSpriteNode.animateUsingTextures(SKTextureArray,timePerFrame:1)

当每个单独的纹理显示时,设置动画,播放声音

这是我所拥有的不起作用的东西。

(代码只是我所拥有的东西的抽象)


我认为现在的情况是,你播放一次声音,然后设置所有纹理的动画。您可以尝试做什么:

fund animation() {
     for myTexture in textures {
          let sound = SKAction.playSoundFileNamed("DisplayGesture.mp3", waitForCompletion: true)
          sprite.texture = myTexture
     }
}

你所说的“特定纹理”是什么意思?我只是用抽象来指代我将附加的随机纹理。我不会太关注这个。要考虑的主要问题是通过3个或更多的文本数组的动画。只是确定一下。感谢我唯一想到的是,使用animateWithTextures方法,它包含一个参数timePerFrame,它是一个NSTimeInterval。如果有某种方法可以覆盖animateWithTextures方法,并利用timePerFrame仅在每个纹理中包含声音和popAnimation,那么这很可能会起作用。此外,您可以尝试在组中添加快速暂停(completeAnimation)。例如(声音、动画、暂停)。让我做一些研究,看看我们是否能做到这两个想法中的任何一个。我已经尝试过了,但该方法的问题是for循环在编译时执行。所以动画发生得太快了,以至于你看不到它们,声音也被窃听了。那么你想知道如果声音是.5秒长,那么动画应该总共持续1或1.5秒吗?我基本上是在尝试迭代每个纹理,当每个纹理都显示时,使用popAnimation设置动画并为其播放声音。因此,如果数组中有5个纹理,那么5个纹理中的每一个都会有一个popAnimation并播放一个声音(声音的长度或稍长)
fund animation() {
     for myTexture in textures {
          let sound = SKAction.playSoundFileNamed("DisplayGesture.mp3", waitForCompletion: true)
          sprite.texture = myTexture
     }
}