SpriteKit淡出

时间:2016-12-10 09:52:31

标签: ios swift animation sprite-kit

我有两个按钮,我希望淡出。运行以下操作时没有任何反应。

    .....
    //Both buttons are SKSpriteNodes

   gameOverRestart = SKSpriteNode(imageNamed: "restart.png")
   gameOverMainMenu = SKSpriteNode(imageNamed: "harambe.jpg")

   gameOverRestart.position = CGPoint(x: self.frame.midX - 80, y: self.frame.midY + 50)
   gameOverMainMenu.position = CGPoint(x: self.frame.midX + 80, y: self.frame.midY + 50)

   gameOverRestart.size = CGSize(width: 80, height: 80)
   gameOverMainMenu.size = CGSize(width: 80, height: 80)

   addChild(gameOverRestart)
   addChild(gameOverMainMenu)

   let fade = SKAction.fadeAlpha(to: 0, duration: 1)

   gameOverMainMenu.run(fade)
   gameOverRestart.run(fade)

1 个答案:

答案 0 :(得分:3)

确保您的节点及其所有父节点未暂停。暂停的节点不会对操作做出反应,并且有效暂停(真的吗?我不知道...... :))。你可以像这样取消暂停节点:

node.paused = false

其中“node”是要取消暂停的节点的声明名称。

同时确保您的视图未暂停:

view.paused = false

至于评论中的其他问题,试试这个(可能效率不高但效果不错):

  1. 声明布尔值
  2. 在运行操作之前将其设置为true,然后在运行操作后将其重置为false。
  3. 使用此选项确定当前是否正在运行该操作。
  4. 代码看起来像这样:

    var running = false
    
    ...
    
    let fade = SKAction.fadeAlpha(to: 0, duration: 1)
    
    if running == false {
        running = true
        gameOverRestart.run(fade, completion: { running = false })
    }