【问题标题】:Skspritenode texture animation doesn't workSkspritenode 纹理动画不起作用
【发布时间】:2018-07-05 07:50:33
【问题描述】:

我只是尝试在我的场景中设置一些硬币的动画。在我的其他项目中,动画作品。但最近不在这里。

func addCoins() {

    for coins in map.coinSpawns {

        var coin = SKSpriteNode(imageNamed: "coin1")
        coin.position = coins
        coin.size = CGSize(width:map.tileSize - 10,height: map.tileSize - 10)
        let action = SKAction.repeatForever(SKAction.animate(withNormalTextures: [SKTexture(imageNamed: "coin1.png"),SKTexture(imageNamed: "coin2.png"),SKTexture(imageNamed: "coin3.png"),SKTexture(imageNamed: "coin4.png")], timePerFrame: 0.5, resize: false, restore: true))

        self.addChild(coin)
        coin.run(action)
        self.coins.append(coin)
    }
}

【问题讨论】:

    标签: swift swift3 skspritenode skaction


    【解决方案1】:

    尝试重构您的代码,从文件名中删除.png(应该是修复)并在硬币循环之外提取纹理数组(优化),因此您的代码可能是:

    func addCoins() {
        let textures = ["coin1", "coin2", "coin3", "coin4"].flatMap { SKTexture(imageNamed: $0) }
    
        for coins in map.coinSpawns {
            var coin = SKSpriteNode(imageNamed: "coin1")
            coin.position = coins
            coin.size = CGSize(width:map.tileSize - 10,height: map.tileSize - 10)
            self.addChild(coin)
            self.coins.append(coin)
    
            let action = SKAction.repeatForever(SKAction.animate(with: textures, timePerFrame: 0.5, resize: true, restore: false))
            coin.run(action)
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多