快速背景图像降低FPS /纹理变化导致滞后

时间:2016-01-28 21:57:54

标签: ios swift sprite-kit

我正在使用Swift构建我的第一个游戏所以请轻松一点......我已经把一个运行得很好的游戏放在一起,当我向我的GameScene添加背景图像时,它基本上将FPS降低了30-40 %。背景图片是225KB。

我已将以下内容添加到didMoveToView:

var background = SKSpriteNode(imageNamed: "bg");
background.position = CGPoint(x: self.frame.size.width / 2, y: self.frame.size.height / 2)
background.size = self.frame.size
self.scaleMode = SKSceneScaleMode.ResizeFill
self.addChild(background)

touchesEnded

每次点击我都会改变纹理:

projectile.texture = SKTexture(imageNamed: "rabbit")

这是每次点击时更改的正确方法吗?

我在这里设置背景的原因是因为每次我在GameViewController中设置背景时,它都会覆盖我的GameScene并且我尝试使用z-index并将背景发送到后面但我没有运气1-2小时的尝试。

我有一种强烈的感觉,这就是放弃我的FPS,因为它是另一个SKSpriteNode - 即使我开始游戏它也会滞后。

在仪器中是否有办法查看哪一行代码或代码块导致滞后?

是否有更好的方法来分配此背景以减少延迟?我正在使用大约15个小图像,每10秒我切换一个纹理 - 这可能是为什么?我也觉得每10秒换一次纹理可能会导致这种情况。

非常感谢任何建议。

0 个答案:

没有答案