gpt4 book ai didi

swift - view?.ispaused = true with skscene 不工作

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

所以我正在使用 SpriteKit 开发游戏,我正在使用这段代码来暂停游戏。

self.pauseButton.alpha = 0
self.playButton.alpha = 1
self.settingsBackground.alpha = 0.85
self.isPaused = true
self.pauseButton.alpha = 1
self.playButton.alpha = 0
self.settingsBackground.alpha = 0

暂停前运行的代码是改变暂停的外观,之后的代码恢复它。问题是暂停前的代码没有运行,而游戏只是在改变视觉效果之前暂停。我试过添加延迟,使步骤 SKActions,并只测试暂停前的代码。当我只运行前 3 行时,视觉效果会正常变化,但显然,游戏不会暂停。当我运行整个游戏时,游戏会暂停,但视觉效果不会改变。帮助!

最佳答案

问题是,即使场景暂停,代码仍会运行。是的,您正在暂停场景,是的,视觉效果确实会运行...但是 isPaused 行之后的视觉效果也会运行并重置您刚刚更改的视觉效果。

这是一个非常简单的例子来说明它是如何工作的。现场有3个箱子;底部盒子有一个重复放大和缩小的 Action ,当场景暂停时会停止。按下顶部的框将暂停游戏,并显示中间的框,这将取消暂停游戏。

class GameScene: SKScene {

private var test: SKSpriteNode!
private var test2: SKSpriteNode!
private var test3: SKSpriteNode!

override func didMove(to view: SKView) {

backgroundColor = .clear

test = SKSpriteNode(color: .blue, size: CGSize(width: 200, height: 200))
test.position = CGPoint(x: 0, y: 350)
addChild(test)

test2 = SKSpriteNode(color: .red, size: CGSize(width: 200, height: 200))
test2.position = CGPoint(x: 0, y: 0)
test2.alpha = 0
addChild(test2)

test3 = SKSpriteNode(color: .yellow, size: CGSize(width: 200, height: 200))
test3.position = CGPoint(x: 0, y: -350)
addChild(test3)

let scaleDown = SKAction.scale(to: 0.1, duration: 1.0)
let scaleUp = SKAction.scale(to: 1.0, duration: 1.0)
let sequence = SKAction.sequence([scaleDown, scaleUp])
let repeater = SKAction.repeatForever(sequence)
test3.run(repeater)
}

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {

if let touch = touches.first as UITouch! {

let touchLocation = touch.location(in: self)

if test.contains(touchLocation) {
print("pausing")
self.test2.alpha = 1
self.test.alpha = 0
self.isPaused = true
}

if test2.contains(touchLocation) {
print("unpausing")
self.test2.alpha = 0
self.test.alpha = 1
self.isPaused = false
}
}
}
}

关于swift - view?.ispaused = true with skscene 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46566077/

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