Ios 在GameSecene()中从GameViewController()调用布尔值时,它将赢得';不要更新我的值
我在游戏主屏幕上的GameViewController中有一个按钮:Ios 在GameSecene()中从GameViewController()调用布尔值时,它将赢得';不要更新我的值,ios,swift,Ios,Swift,我在游戏主屏幕上的GameViewController中有一个按钮: var gameScene: GameScene! override func viewDidAppear(animated: Bool) { gameScene = GameScene() } @IBAction func butPressed(sender: UIButton) { gameScene.buttonPressed = true println("Pressed from Game
var gameScene: GameScene!
override func viewDidAppear(animated: Bool) {
gameScene = GameScene()
}
@IBAction func butPressed(sender: UIButton) {
gameScene.buttonPressed = true
println("Pressed from GameViewController")
}
但当我从GameSecene()更新方法执行此操作时:
override func update(currentTime: CFTimeInterval) {
if (buttonPressed == true) {
println("Pressed from GameScene")
buttonPressed = false
}
}
我永远无法将变量更改为true。如果我println(“buttonPressed”)
from update(),它总是保持为false。但是,如果我在iAction中打印按钮,它将显示为true。GameViewController()中的变量change不会更改GameSecene()中update()中的布尔值。为什么?
请帮助我尝试使用此代码创建新类
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
您在GameViewController中创建的游戏场景是否与执行
update
方法的游戏场景相同?