gpt4 book ai didi

ios - 不同节点上多个 SKAction 的完成 block

转载 作者:行者123 更新时间:2023-11-29 01:45:52 25 4
gpt4 key购买 nike

例如,我有一个数组,其中的节点是 SKSpriteNode 的子类。我如何才能对数组中的所有节点运行相同的操作,并同时为所有操作设置一个完成 block ?
我在玩一个瓷砖游戏,想做一个链式 react ,当一些瓷砖被销毁时,在它们销毁结束时再次调用相同的函数来检查更多的链(递归)。
我现在所拥有的也工作正常,但链之间没有延迟。我怎样才能做到这一点?检查下面我当前的代码。
提前致谢!

func checkTilesAndDestroy(inout tilesToCheck: [Tile]) {

if tilesToCheck.count == 0 { return }

let firstTileToCheck = tilesToCheck.removeAtIndex(0)

let tilesToDestroy: [Tile] = self.getNeighbours(firstTileToCheck)

if tilesToDestroy.count >= 3 {

for tile in tilesToDestroy {

/* some code here */

if /* some code here */ {
/* some code here */

if /* some code here */ {
/* some code here */
tilesToCheck.append(anotherTile)
} else {
/* some code here */
}

/* some code here */
}

tile.runAction(SKAction.scaleTo(0, duration: 0.1)) {
tile.removeFromParent()
}
}
}

checkTilesAndDestroy(&tilesToCheck)
}

我想成为这样的人。

func checkTilesAndDestroy(inout tilesToCheck: [Tile]) {

if tilesToCheck.count == 0 { return }

let firstTileToCheck = tilesToCheck.removeAtIndex(0)

let tilesToDestroy: [Tile] = self.getNeighbours(firstTileToCheck)

if tilesToDestroy.count >= 3 {
for tile in tilesToDestroy {
/* some code here */
}
}

self.runAction(SKAction.runBlock({
for tile in tilesToDestroy {
tile.runAction(SKAction.scaleTo(0, duration: 0.1)) {
tile.removeFromParent()
}
}
})) { [unowned self] in

/* here al tiles actions are completed */
self.checkTilesAndDestroy(&tilesToCheck)
}
}

最佳答案

嗯,我找到了一个完美的解决方法。

func checkTilesAndDestroy(inout tilesToCheck: [Tile]) {

if tilesToCheck.count == 0 { return }

let firstTileToCheck = tilesToCheck.removeAtIndex(0)

let tilesToDestroy: [Tile] = self.getNeighbours(firstTileToCheck)

if tilesToDestroy.count >= 3 {

for tile in tilesToDestroy {

/* some code here */

tile.runAction(SKAction.scaleTo(0, duration: 0.1)) {
tile.removeFromParent()
}
}
}

if tilesToCheck.count != 0 {
self.runAction(SKAction.waitForDuration(0.1)) { [unowned self] in
self.checkTilesAndDestroy(&tilesToCheck)
}
}
}

关于ios - 不同节点上多个 SKAction 的完成 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31935267/

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