Swift SpriteKit Layer/Node 加载速度不够快

Swift SpriteKit Layer/Node doesn't load fast enough

我创建了我的第一个简单的 IOS 游戏,并创建了游戏图层 gameLayer 和简历 Button/Node 的 pauseLayer。在我的 gameLayer 中,我有一个按钮可以暂停游戏,在我的 pauseLayer 中有一个 Button/Node 可以继续。我在从 touchesEnded 函数获取点的函数中这样做:

    var ispaused = false

    func touchend(atPoint pos : CGPoint) {
    if ispaused == false && pausebutton.contains(pos) {
        pauseLayer.isHidden = false
        view?.isPaused = true
        ispaused = true
    }
    if ispaused == true && resumebutton.contains(pos) {
        pauseLayer.isHidden = true
        view?.isPaused = false
        ispaused = false
    }
    }

除我看不到我的简历按钮外,一切正常。我可以点击它应该在的地方,然后游戏继续。但是当我删除行 view?.isPaused = true 时,按钮会按原样显示。 这让我想到暂停视图也可能会暂停 loading/displaying 我的简历按钮的过程。我怎样才能避免这个问题?

好吧,来测试一下你的加载速度不够快的理论。

您可以延迟代码执行:

let delayDuration:Double = 1.0 /* In seconds */ 

let totalDelayTime = DispatchTime.now() + delayDuration 

DispatchQueue.main.asyncAfter(deadline: totalDelayTime, execute: { view?.isPaused = true })

它将等待 1 秒,然后再计算 view?.isPaused

也试试这个,不确定是否有效。

defer { view?.isPaused = true }

defer 语句将执行延迟到当前作用域的末尾。这将是 touchEnd 函数的结尾