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



我创建了我的第一个简单的IOS游戏,并创建了带有我的游戏的游戏层和带有恢复按钮/节点的暂停层。在我的游戏层中,我有一个按钮来暂停游戏,在我的暂停层中,我有一个按钮/节点来恢复。我在我的函数中这样做,该函数从touchesEnd函数中获取分数:

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按钮时,它会按原样显示。 这让我想到暂停视图也可能暂停加载/显示我的简历按钮的过程。如何避免此问题?

好吧,测试一下您的理论,即它的加载速度不够快。

您可以通过以下方式延迟代码执行:

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函数的结尾

最新更新