我正在使用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秒换一次纹理可能会导致这种情况。
非常感谢任何建议。