gpt4 book ai didi

ios - 在 Swift 中使用更新函数的更清洁(更好)替代方法

转载 作者:搜寻专家 更新时间:2023-10-31 22:48:11 27 4
gpt4 key购买 nike

简而言之:

有没有比将所有函数都放在更新函数中更能减少“延迟”和内存滥用的长时间运行大型函数的更好方法?

完整问题

我目前正处于使用 iOS Swift 和 SpriteKit 开发我的第一个游戏应用程序的最后阶段。我遇到的更大问题之一是滞后/延迟。 Time Profiler Instrument 指出我的override func update 使用了大量内存和时间。我的更新功能包括以下内容:

override func update(currentTime: CFTimeInterval) {

if hasStarted {

// Character
updateCharacterPosition()
updateJumpMotion()

// Blocks
blockRunnerDebug()

// Wave
debugRunningBarPosition()

// Game Engine
gameEngine()
debugGameEngine()
}

// Update Scenery
updateScenery()
}

如你所见,它有很多功能。它们中的大多数运行背景动画,例如水、云或角色的跳跃动画。

例子:

// Move y
self.cloud01.position.y = self.cloud01.position.y + (CGFloat(createSinWave(0.5, b: b, angle: angle))) * 0.3
self.cloud02.position.y = self.cloud02.position.y + (CGFloat(createSinWave(0.5, b: b, angle: angle))) * 0.3

我的问题是:有没有更好的方法来长时间运行大型函数,比将它们全部放在更新函数中更不“延迟”和内存滥用?

谢谢

最佳答案

可能会根据用户交互改变方向或位置的项目需要更新。没有办法解决这个问题。

对于背景动画之类的项目,您可以(并且应该)在开始时设置一次并将它们放入无限动画循环中,而不是每次更新都手动更新位置。这应该会有很大帮助。

关于ios - 在 Swift 中使用更新函数的更清洁(更好)替代方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33500797/

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