有人可以为我编写代码,请如何快速添加覆盖开始场景?
我想在 Flappy Bird 中添加一个 startMenu,然后当您单击播放时,它只会移动/消失,然后游戏就开始了。有人可以帮我实现这个效果吗?
期待实现这一目标。
我将不胜感激!
有人可以为我编写代码,请如何快速添加覆盖开始场景?
我想在 Flappy Bird 中添加一个 startMenu,然后当您单击播放时,它只会移动/消失,然后游戏就开始了。有人可以帮我实现这个效果吗?
期待实现这一目标。
我将不胜感激!
在询问有关堆栈溢出的问题时,尝试发布一些您迄今为止尝试过的代码,人们往往不会为您编写代码。
你基本上可以通过两种方式做到这一点。
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 制作按钮子类的示例。
希望这可以帮助