arrays - Swift - 使用纹理数组更改 SKSpriteNode 纹理

标签 arrays swift skspritenode sktexture

我正在尝试使用纹理数组为 SKSpriteNode 制作动画。我想要实现的是迭代纹理数组并通过每次迭代更改 SKSpriteNode 纹理并显示其更改约 1 秒。唯一的问题是,我相信随着动画的发生,循环仍在继续,所以我看不到变化。

我本质上希望能够在屏幕上的每个纹理发生变化之前看到大约一两秒。这是我到目前为止所拥有的。

var textures: [SKTexture] = [texture1, texture2, texture3, texture4]
var sprite = SKSpriteNode()

func animateSpriteTextures() {

    for texture in textures {
    /* Want to pause for about a second or two here, but does not. */
    sprite.texture = texture

    let scaleDown = SKAction.scaleTo(200, duration: 1)
    let scaleUp = SKAction.scaleTo(300, duration: 1)
    sprite.runAction(SKAction.sequence([scaleDown, scaleUp]))
    }
}

最佳答案

看一下 animateWithTextures: 操作。你可以这样做:

sprite.runAction(SKAction.animateWithTextures(textures, timePerFrame: 1.0))

如果您需要在动画发生时更改 Sprite 的大小,那么您可能需要创建一个操作组 SKAction.group() 来协调动画和大小更改,或者也许 animateWithTextures:timePerFrame:resize:restore: 适合你。

关于arrays - Swift - 使用纹理数组更改 SKSpriteNode 纹理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34168256/

相关文章:

swift - SKSpriteNode 具有物理主体自动校正方向

ios - SpriteKit Swift 4 错误 : Type 'Int' has no member 'random'

ios - 在 SKSpriteNode 内部调用自定义方法不起作用

javascript - Array.push.setAnyFormatting ('red')?

ios - 核心图像检测器(CIDetector)未检测到 QRCodes

ios - 确定表的方法在 firebase 中不存在

ios - 对 View 背景的模糊效果

java - 设置嵌套 json 数组的值

c - Valgrind 的无效写入

c - 初始化结构的二维数组,所有值都归零