【问题标题】:Large SKSpriteNodes causing frame rate drop大型 SKSpriteNode 导致帧率下降
【发布时间】:2015-05-11 06:58:08
【问题描述】:

我正在使用相当大的 SpriteNodes 在 iOS Swift 中移动我的背景(除此之外)。

let runningBar = SKSpriteNode(imageNamed: "Bar")
self.addChild(self.scoreText)

它是这样移动的:

override func update(currentTime: NSTimeInterval) {

    // Golf
    updateRunningBarPosition()

}

func updateRunningBarPosition() {
    runningBar.position.y = CGFloat(Double(runningBar.position.y) + createSinWave(angle) * 1)
    self.angle += 0.01
}

这会导致帧速率从 60 fps 下降到大约 28-32。

如何防止这种情况发生?

【问题讨论】:

标签: ios swift sprite-kit


【解决方案1】:

如果图像资源非常大,您需要考虑将它们上传到 gpu 和渲染所花费的时间,如果它们具有 alpha,或者对其应用任何其他效果,并且您有相当多的图像 gpu 时间可以成倍增长,您最终会遇到丢帧。一个好的策略是问问自己你是否真的需要这么大的图像,因为你可以将工作分解成更小、更容易处理的块,比如平铺背景、使用可拉伸的渐变,或者分解大的图像分成 4-10 个小块。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多