Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 在一个动画循环后隐藏SKSpriteNode_Swift_Sprite Kit - Fatal编程技术网

Swift 在一个动画循环后隐藏SKSpriteNode

Swift 在一个动画循环后隐藏SKSpriteNode,swift,sprite-kit,Swift,Sprite Kit,我在游戏中得到了这个爆炸代码: func addExplosion(explosionNode: SKSpriteNode, atPosition position: CGPoint) { explosion = SKSpriteNode(texture: explosionTex) //Animation heroFlyTexturesArray = [SKTexture(imageNamed: "explosion1_0001.png"), SKTextur

我在游戏中得到了这个爆炸代码:

    func addExplosion(explosionNode: SKSpriteNode, atPosition position: CGPoint) {


    explosion = SKSpriteNode(texture: explosionTex)

  //Animation
    heroFlyTexturesArray = [SKTexture(imageNamed: "explosion1_0001.png"), SKTexture(imageNamed: "explosion1_0002.png"), SKTexture(imageNamed: "explosion1_0003.png"), SKTexture(imageNamed: "explosion1_0004.png"), SKTexture(imageNamed: "explosion1_0005.png"), SKTexture(imageNamed: "explosion1_0006.png"), SKTexture(imageNamed: "explosion1_0007.png"), SKTexture(imageNamed: "explosion1_0008.png"), SKTexture(imageNamed: "explosion1_0009.png"), SKTexture(imageNamed: "explosion1_0010.png"), SKTexture(imageNamed: "explosion1_0011.png"), SKTexture(imageNamed: "explosion1_0012.png"), SKTexture(imageNamed: "explosion1_0013.png"), SKTexture(imageNamed: "explosion1_0014.png"), SKTexture(imageNamed: "explosion1_0015.png"), SKTexture(imageNamed: "explosion1_0016.png"), SKTexture(imageNamed: "explosion1_0017.png"), SKTexture(imageNamed: "explosion1_0018.png"), SKTexture(imageNamed: "explosion1_0019.png"), SKTexture(imageNamed: "explosion1_0020.png"), SKTexture(imageNamed: "explosion1_0021.png"), SKTexture(imageNamed: "explosion1_0022.png"), SKTexture(imageNamed: "explosion1_0023.png"), SKTexture(imageNamed: "explosion1_0024.png"), SKTexture(imageNamed: "explosion1_0025.png"), SKTexture(imageNamed: "explosion1_0026.png"), SKTexture(imageNamed: "explosion1_0027.png"), SKTexture(imageNamed: "explosion1_0028.png"), SKTexture(imageNamed: "explosion1_0029.png"), SKTexture(imageNamed: "explosion1_0030.png"), SKTexture(imageNamed: "explosion1_0031.png"), SKTexture(imageNamed: "explosion1_0032.png"), SKTexture(imageNamed: "explosion1_0033.png"), SKTexture(imageNamed: "explosion1_0034.png"), SKTexture(imageNamed: "explosion1_0035.png"), SKTexture(imageNamed: "explosion1_0036.png"), SKTexture(imageNamed: "explosion1_0037.png"), SKTexture(imageNamed: "explosion1_0038.png"), SKTexture(imageNamed: "explosion1_0039.png"), SKTexture(imageNamed: "explosion1_0040.png"), SKTexture(imageNamed: "explosion1_0041.png"), SKTexture(imageNamed: "explosion1_0042.png"), SKTexture(imageNamed: "explosion1_0043.png"), SKTexture(imageNamed: "explosion1_0044.png"), SKTexture(imageNamed: "explosion1_0045.png"), SKTexture(imageNamed: "explosion1_0046.png"), SKTexture(imageNamed: "explosion1_0047.png"), SKTexture(imageNamed: "explosion1_0048.png"), SKTexture(imageNamed: "explosion1_0049.png"), SKTexture(imageNamed: "explosion1_0050.png"), SKTexture(imageNamed: "explosion1_0051.png"), SKTexture(imageNamed: "explosion1_0052.png"), SKTexture(imageNamed: "explosion1_0053.png"), SKTexture(imageNamed: "explosion1_0054.png"), SKTexture(imageNamed: "explosion1_0055.png"), SKTexture(imageNamed: "explosion1_0056.png"), SKTexture(imageNamed: "explosion1_0057.png"), SKTexture(imageNamed: "explosion1_0058.png"), SKTexture(imageNamed: "explosion1_0059.png"), SKTexture(imageNamed: "explosion1_0060.png"), SKTexture(imageNamed: "explosion1_0061.png"), SKTexture(imageNamed: "explosion1_0062.png"), SKTexture(imageNamed: "explosion1_0063.png"), SKTexture(imageNamed: "explosion1_0064.png"), SKTexture(imageNamed: "explosion1_0065.png"), SKTexture(imageNamed: "explosion1_0066.png"), SKTexture(imageNamed: "explosion1_0067.png"), SKTexture(imageNamed: "explosion1_0068.png"), SKTexture(imageNamed: "explosion1_0069.png"), SKTexture(imageNamed: "explosion1_0070.png"), SKTexture(imageNamed: "explosion1_0071.png"), SKTexture(imageNamed: "explosion1_0072.png"), SKTexture(imageNamed: "explosion1_0073.png"), SKTexture(imageNamed: "explosion1_0074.png"), SKTexture(imageNamed: "explosion1_0075.png"), SKTexture(imageNamed: "explosion1_0076.png"), SKTexture(imageNamed: "explosion1_0077.png"), SKTexture(imageNamed: "explosion1_0078.png"), SKTexture(imageNamed: "explosion1_0079.png"), SKTexture(imageNamed: "explosion1_0080.png"), SKTexture(imageNamed: "explosion1_0081.png"), SKTexture(imageNamed: "explosion1_0082.png"), SKTexture(imageNamed: "explosion1_0083.png"), SKTexture(imageNamed: "explosion1_0084.png"), SKTexture(imageNamed: "explosion1_0085.png"), SKTexture(imageNamed: "explosion1_0086.png"), SKTexture(imageNamed: "explosion1_0087.png"), SKTexture(imageNamed: "explosion1_0088.png"), SKTexture(imageNamed: "explosion1_0089.png"), SKTexture(imageNamed: "explosion1_0090.png")]
    let heroFlyAnimation = SKAction.animate(with: heroFlyTexturesArray, timePerFrame: 0.01)

    let flyHero = SKAction.repeat(heroFlyAnimation, count: 1)

 //   repeatForever(heroFlyAnimation)

    explosion.run(flyHero, withKey: "explosion")

    explosion.position = position
    explosion.size.height = 130
    explosion.size.width = 200

    explosionObject.addChild(explosion)

    if   explosionObject.frame(flyHero) == 90 {}
    }
}
动画工作,但我有一个问题,最后一帧的动画,这不会消失在我的游戏场景。我需要在一个动画循环后隐藏它,因为我的游戏场景中有很多爆炸的动作。

使用完成块运行你的动作。这允许您在操作完成时执行一些代码

explosion.run(heroFlyAnimation, completion: {
    explosion.removeFromParent()
})
这不是问题的一部分,但您可能会发现,使用循环构造HeroflyTextureArray而不是在代码中列出所有SKTexture对象也很有用。请尝试以下方法:

var heroFlyTexturesArray = [SKTexture]()
for i in 1 ... 90 {
    let numericString = i < 10 ? "0\(i)" : "\(i)"
    let texture = SKTexture(imageNamed: "explosion1_00\(numericString).png")
    heroFlyTexturesArray.append(texture)
}

在需要使用关键点设置动画的情况下,SKAction.sequence是您最好的朋友 explosion.runSKAction.sequence[heroFlyAnimation,SKAction.removeFromParent],带有键:explosion