制作一个不隐藏在GameScene中的按钮
Making a button not hidden in GameScene
你好,我的问题只是如何取消隐藏 GameScene 中的按钮。我有一个在故事板中设置的 segueToMainMenu 按钮。
这是我的 GameViewController 的样子:
@IBOutlet 弱变量 segueToMainMenu:UIButton!
override func viewDidLoad() {
super.viewDidLoad()
let scene = GameScene(size: view.bounds.size)
let skView = view as! SKView
skView.showsFPS = true
skView.showsNodeCount = true
skView.ignoresSiblingOrder = false
scene.scaleMode = .AspectFill
skView.presentScene(GameScene(size: skView.bounds.size))
scene.viewController = self
self.segueToMainMenu.hidden = true
}
我将按钮设置为隐藏,但现在在我的游戏中,我想在 GameScene 中运行丢失功能时取消隐藏它,因为当单击按钮时,它会返回到主菜单,主菜单也是一个单独的视图控制器在情节提要中。有什么帮助谢谢。
您可以为您的场景创建一个委托,它将在 gameOver 上调用适当的方法并执行类似
的操作
// in the view controller
func gameSceneDidSendGameOver() {
self.segueToMainMenu.hidden = false
}
//in the scene
var gameOverDelegate : GameOverDelegate?
func gameOver() {
gamOverDelegate?.gameSceneDidSendGameOver()
}
或者做一些丑陋的方式,比如:
func gameOver() {
let gvc = self.viewController as GameViewController
gvc.segueToMainMenu.hidden = false
}
编辑: 委托协议声明。
protocol GameOverDelegate {
func gameSceneDidSendGameOver()
}
class GameViewController : ViewController, GameOverDelegate {
...
func gameSceneDidSendGameOver() {
self.segueToMainMenu.hidden = false
}
}
你好,我的问题只是如何取消隐藏 GameScene 中的按钮。我有一个在故事板中设置的 segueToMainMenu 按钮。 这是我的 GameViewController 的样子:
@IBOutlet 弱变量 segueToMainMenu:UIButton!
override func viewDidLoad() {
super.viewDidLoad()
let scene = GameScene(size: view.bounds.size)
let skView = view as! SKView
skView.showsFPS = true
skView.showsNodeCount = true
skView.ignoresSiblingOrder = false
scene.scaleMode = .AspectFill
skView.presentScene(GameScene(size: skView.bounds.size))
scene.viewController = self
self.segueToMainMenu.hidden = true
}
我将按钮设置为隐藏,但现在在我的游戏中,我想在 GameScene 中运行丢失功能时取消隐藏它,因为当单击按钮时,它会返回到主菜单,主菜单也是一个单独的视图控制器在情节提要中。有什么帮助谢谢。
您可以为您的场景创建一个委托,它将在 gameOver 上调用适当的方法并执行类似
的操作// in the view controller
func gameSceneDidSendGameOver() {
self.segueToMainMenu.hidden = false
}
//in the scene
var gameOverDelegate : GameOverDelegate?
func gameOver() {
gamOverDelegate?.gameSceneDidSendGameOver()
}
或者做一些丑陋的方式,比如:
func gameOver() {
let gvc = self.viewController as GameViewController
gvc.segueToMainMenu.hidden = false
}
编辑: 委托协议声明。
protocol GameOverDelegate {
func gameSceneDidSendGameOver()
}
class GameViewController : ViewController, GameOverDelegate {
...
func gameSceneDidSendGameOver() {
self.segueToMainMenu.hidden = false
}
}