gpt4 book ai didi

ios - 执行操作后执行操作?

转载 作者:行者123 更新时间:2023-11-30 14:16:56 25 4
gpt4 key购买 nike

我基本上有三个 Sprite 。我想首先让它们全部淡出。完成后,我想对它们执行其他操作。这是我的代码:

    //Fade the sprites out
oneMissedOrbIndicator.runAction(SKAction.fadeOutWithDuration(0.5))
firstTwoMissedOrbsIndicator.runAction(SKAction.fadeOutWithDuration(0.5))
secondTwoMissedOrbsIndicator.runAction(SKAction.fadeOutWithDuration(0.5))

//Do this after all three sprites have been faded out
switch numberOfCollectionOrbsNotCollected {
case 0:
break
case 1:
oneMissedOrbIndicator.runAction(SKAction.fadeInWithDuration(0.5))
case 2:
firstTwoMissedOrbsIndicator.runAction(SKAction.fadeInWithDuration(0.5))
secondTwoMissedOrbsIndicator.runAction(SKAction.fadeInWithDuration(0.5))
default:
print("Unreachable switch statement case reached3!\n")
exit(EXIT_FAILURE)

}

然而,SpriteKit 不会等待淡出操作完成后再进行下一个操作,所以基本上我想要发生的事情会同时发生。

三个 Sprite 全部淡出后如何执行 switch 语句?

我尝试过以下方法:

1) 在淡入淡出代码之后有一个 while 语句。当任何 Sprite 的“hasActions”为 true 时,while 循环将继续循环。这只是卡住了我的应用程序。

2)在我淡出的最后一个 Sprite 的“完成”闭包中执行 switch 语句。这与上面的代码执行相同 - switch 语句由于某种原因同时发生。

最佳答案

您可以检查类似这样的操作是否完成

var completed = false

let fadeOut = SKAction.fadeOutWithDuration(0.5)

oneMissedOrbIndicator.runAction(fadeOut, completion: {self.completed = true})
firstTwoMissedOrbsIndicator.runAction(fadeOut)
secondTwoMissedOrbsIndicator.runAction(fadeOut)

由于您同时运行这些操作,因此您可以仅检查一个操作的完成情况来更改 bool 值。您现在可以将 switch 语句放置在更新函数中以检查 Completed 是否为 true。

    override func update(currentTime: NSTimeInterval) {

if completed == true {

switch numberOfCollectionOrbsNotCollected {
case 0:
break
case 1:
oneMissedOrbIndicator.runAction(SKAction.fadeInWithDuration(0.5))
case 2:
firstTwoMissedOrbsIndicator.runAction(SKAction.fadeInWithDuration(0.5))
secondTwoMissedOrbsIndicator.runAction(SKAction.fadeInWithDuration(0.5))
default:
print("Unreachable switch statement case reached3!\n")
exit(EXIT_FAILURE)
}

}

关于ios - 执行操作后执行操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31037452/

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