gpt4 book ai didi

ios - 在 GameScene() 中从 GameViewController() 调用 bool 值时,它不会更新我的值

转载 作者:行者123 更新时间:2023-11-28 13:15:29 25 4
gpt4 key购买 nike

我在主游戏屏幕上的 GameViewController 中有一个按钮:

var gameScene: GameScene!

override func viewDidAppear(animated: Bool) {
gameScene = GameScene()
}

@IBAction func butPressed(sender: UIButton) {
gameScene.buttonPressed = true
println("Pressed from GameViewController")
}

但是当我从 GameScene() 更新方法执行此操作时:

override func update(currentTime: CFTimeInterval) {

if (buttonPressed == true) {

println("Pressed from GameScene")

buttonPressed = false
}
}

我永远无法将变量更改为 true。如果我 println("buttonPressed") 来自 update(),它始终保持为 false。但是,如果我从 IBAction 中打印 buttonPressed,它将显示为 true。 GameViewController() 中的变量更改不会更改 GameScene() 中 update() 中的 bool 值。为什么?

请帮帮我

最佳答案

尝试用这段代码创建新类

class Data {
struct gameScene {
static var ButtonPressed:Bool = false
}
}

然后对你的代码做一些修改

var gameScene: GameScene!

override func viewDidAppear(animated: Bool) {
gameScene = GameScene()
}

@IBAction func butPressed(sender: UIButton) {
Data.gameScene.buttonPressed = true
println("Pressed from GameViewController")
}

override func update(currentTime: CFTimeInterval) {

if (Data.gameScene.buttonPressed == true) {

println("Pressed from GameScene")

Data.gameScene.buttonPressed = false
}
}

您可以使用此代码在项目的任何位置调用此变量

Data.gameScene.buttonPressed

关于ios - 在 GameScene() 中从 GameViewController() 调用 bool 值时,它不会更新我的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29194054/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com