【问题标题】:Loading Screen SpriteKit Swift To Improve Frame Rate加载屏幕 SpriteKit Swift 以提高帧速率
【发布时间】:2014-12-20 18:03:38
【问题描述】:

我正在尝试创建一个“加载屏幕”来预加载所有纹理。

我在 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

我做错了什么或如何解决这个问题?

谢谢! (对不起我的英语)

【问题讨论】:

    标签: ios swift sprite-kit


    【解决方案1】:

    只有在运行时加载纹理导致帧速率下降时,预加载才会提高帧速率。显然,这不适合您。

    您可以采取以下措施来缩小范围:

    • 在设备上运行(模拟器性能总是很糟糕)
    • 减少节点数
    • 减少带有物理实体的节点数
    • 减少同时/频繁碰撞的物理物体的数量
    • 运行 Instruments 来分析您的应用

    【讨论】:

    • 我在一台设备(iPhone 4S iOS 8.1.2)上运行,将听从您的建议。我会告诉你的。
    猜你喜欢
    • 1970-01-01
    • 2012-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-20
    • 1970-01-01
    相关资源
    最近更新 更多