gpt4 book ai didi

swift - 在 spritekit 的 update() 中运行循环,很少,高效 : a way?

转载 作者:可可西里 更新时间:2023-11-01 00:58:12 28 4
gpt4 key购买 nike

为了呈现一堆节点,每帧一个,直到它们都出现在屏幕上,我想在 update() 调用中做这样的事情。

警告,伪代码接近:

update(){

switch presentNodes_inOrderOfArrayIndex {

case on
if indexPostion less than arrayOfNodes length
run Action to present node pulled from indexPostion in arrayOfNodes
increment indexPosition by 1
else presentNodes_inOrderOfArrayIndex.OFF
return

case default
return

}

但这很少会作为重新演示进行演示。所以 99.999% 的时间它都在通过这个开关进行不必要的检查。

有没有一种方法可以在不在 update() 中添加一些东西的情况下实现这一点,它会在游戏生命周期的每一帧中被调用,并且只在需要时才处于事件状态并执行其操作?

最佳答案

是的,应该删除 update 中的代码。

你可以试试这个

class GameScene: SKScene {

let nodesToAdd: [SKNode] = []

func startAddingNodes() {

var index = 0
let add = SKAction.run { [unowned self] in
self.addChild(self.nodesToAdd[index])
index += 1
}
let wait = SKAction.wait(forDuration: 0.016)
let sequence = SKAction.sequence([add, wait])
let repeatSequence = SKAction.repeat(sequence, count: nodesToAdd.count)

self.run(repeatSequence)
}

}

现在您需要做的就是调用 startAddingNodes 一次

关于swift - 在 spritekit 的 update() 中运行循环,很少,高效 : a way?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40188025/

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