【问题标题】:How to add an overlay start scene in swift?如何快速添加覆盖开始场景?
【发布时间】:2016-11-18 17:46:30
【问题描述】:

谁能帮我写代码,请问如何在 swift 中添加覆盖开始场景?

我想在 Flappy Bird 中添加一个 startMenu,然后当您单击播放时,它会移动/消失,然后游戏就开始了。 有人可以帮我实现这个效果吗?

希望达到this

我将不胜感激!

【问题讨论】:

  • @Knight0fDragon 具有讽刺意味,在回答我的一个问题时,他几乎回答了这个问题。从这里开始:stackoverflow.com/a/40640973/2109038,Yannai 先生。
  • 这里没有讽刺意味,@Confused,您至少提供了代码并希望解决问题。 Yannai Harel 要求人们提供解决问题的代码。
  • 我知道。我在开玩笑。他是新来的。让他松懈一些。 “足够的绳子......”等;)
  • 公平地说,我在节俭。这是我将要尝试解决的问题。我已经在独立项目中完成了我的菜单,现在需要将它们合并到游戏项目中来指导模式、关卡和难度设置。而且我不想使用场景,我将尝试制作一个弹出选项的叠加层,然后跳回游戏等。

标签: swift xcode sprite-kit flappy-bird-clone


【解决方案1】:

在询问有关堆栈溢出的问题时,尝试发布一些您迄今为止尝试过的代码,人们往往不会为您编写代码。

您基本上可以通过两种方式做到这一点。

1)

在按下播放按钮时创建一个 StartScene 并使用您喜欢的 SKTransition 转换到 GameScene,例如 SKTransition.crossFade

2)

如果您想在同一个场景中执行此操作,您可以创建一个 SKNode/SKSpriteNode 类用作菜单。

class Menu: SKSpriteNode {

     lazy var playLabel: SKLabelNode = {
        let label = SKLabelNode(fontNamed: "HelveticaNeue")
        label.text = "Play"
        label.fontSize = 22
        label.fontColor = .yellow
        label.position = CGPoint(x: self.frame.midX, y: self.frame.midY)
        return label
     }()

     /// Init with size
     init(size: CGSize) {
          super.init(texture: nil, color: .red, size: size)

          addChild(playLabel)
     }
}

}

在您的 GameScene 场景中,您可以像这样添加具有您喜欢的大小的菜单,在本例中是场景的大小。

 class GameScene: SKScene {

     lazy var menu: Menu = Menu(size: self.size)

     override func didMove(to view: SKView) {

           addChild(menu)
     }
 }

您可以为该菜单类添加其他 UI 节点,包括按钮精灵等。

比在 GameScene 中的 touches Began 中,您可以查找被触摸的节点,例如播放按钮,而不是执行您的操作,例如为菜单设置动画

 let action1 = SKAction.fadeAlpha(to: 0, duration: 0.5)
 let action2 = SKAction.removeFromParent()
 let sequence = SKAction.sequence([action1, action2])
 menu.run(sequence)

如果你卡在那里并且想要更多的编码示例,你应该在谷歌上搜索如何做到这一点,这是你需要知道的基本 SpriteKit 东西,并且有很多可用的教程。这包括如何使用 SKSpriteNodes 制作按钮子类的示例。

希望对你有帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-10
    • 1970-01-01
    • 2021-09-13
    • 2017-03-23
    • 2023-03-26
    相关资源
    最近更新 更多