[ios]SpriteKit 淡出

标签: sprite-kit ios Swift
发布时间: 2017/4/3 23:29:43
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我有我想要淡出的两个按钮。当运行以下操作什么也没有发生。

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

请确保您的节点与它所有的父母都不停下来。暂停的节点不回应行动,和有效地暂停 (真的吗?我不知道......:))。你可以取消暂停节点就像这样︰

node.paused = false

"节点"在哪里声明的名称,要将未暂停的节点。

此外请确保您的视图不停顿了一下︰

view.paused = false

从评论你其他的问题,试试这个 (这可能不是最有效,但它工作)︰

  1. 声明一个布尔值
  2. 将其设置为 true 之前运行操作,然后运行操作之后重置为 false。
  3. 用于确定是否操作当前正在运行。

代码应类似于︰

var running = false

...

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

if running == false {
    running = true
    gameOverRestart.run(fade, completion: { running = false })
}
赞助商