我正在尝试创建一个“加载屏幕”来预加载所有纹理。
我在GameViewController.swift中有以下内容:
class GameViewController: UIViewController {
var catAtlas = SKTextureAtlas(named:"cat@2x")
//And many more atlas
override func viewDidLoad() {
super.viewDidLoad()
var textureAtlas = NSMutableArray()
textureAtlas.addObject(catAtlas)
SKTextureAtlas.preloadTextureAtlases(textureAtlas, withCompletionHandler: {
//Present Scene
}
})
}
在一个名为Obstacles.swift的类中,它在GameScene.swift中实现:
class Obstacles {
init() { }
var catAtlas = SKTextureAtlas(named:"cat@2x")
func catAnimation(){
//Where catAtlas is used
}
}
这样纹理存储在RAM中,但帧速率不会改变(没有预加载也是如此)。 如果我执行以下操作,帧速率会恶化:
var pinataTextAtlas = GameViewController().catAtlas
我做错了什么或如何解决这个问题?
谢谢! (对不起我的英文)
答案 0 :(得分:0)
如果由于在运行时加载纹理而导致帧速率下降,则预加载只会提高帧速率。显然,情况并非如此。
您可以采取以下措施来缩小范围: