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
Ios SpriteKit淡出_Ios_Swift_Animation_Sprite Kit - Fatal编程技术网

Ios SpriteKit淡出

Ios SpriteKit淡出,ios,swift,animation,sprite-kit,Ios,Swift,Animation,Sprite Kit,我有两个按钮,我想淡出。运行以下操作时,不会发生任何事情 ..... //Both buttons are SKSpriteNodes gameOverRestart = SKSpriteNode(imageNamed: "restart.png") gameOverMainMenu = SKSpriteNode(imageNamed: "harambe.jpg") gameOverRestart.position = CGPoint(x: self.fra

我有两个按钮,我想淡出。运行以下操作时,不会发生任何事情

    .....
    //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)

确保节点及其所有父节点未暂停。暂停的节点不会对操作做出反应,并且会被有效地暂停(真的吗?我不知道…:)。可以按如下方式取消暂停节点:

node.paused = false
其中“node”是要取消暂停的节点的声明名称

还要确保您的视图未暂停:

view.paused = false
至于评论中的其他问题,请尝试以下方法(这可能不是最有效的方法,但很有效):

  • 声明一个布尔值
  • 在运行操作之前将其设置为true,然后在运行操作之后将其重置为false
  • 使用此选项可确定操作当前是否正在运行 代码应该如下所示:

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

    什么是“gameOverMainMenu”和“GameoverEstart”?它们是我添加的SKSpriteNodes。我更新了代码以使其更清晰。在运行操作之前添加这两行代码:
    gameovermain menu.zPosition=1
    gameOverRestart.zPosition=0
    @Mina我的问题不是按钮没有出现,而是没有效果。我可以看到我的两个按钮,但淡入淡出效果没有发生,这是相当奇怪的,因为代码在那里。您知道如何修复此问题吗?您是否尝试在节点上运行其他操作?节点是否已暂停?在运行操作之前,请尝试将其
    暂停
    设置为false。场景也是如此,任何其他家长都会在那里点头以拯救这一天!