
游戏的设计
|
35
1.17
加载游戏资源
问题
为了提高游戏性能,我们需要按需加载游戏的资源。
解决方案
对于每个游戏资源的加载,都需要调用一个任务来执行,并且放到后台中去运行。
当所有资源加载完毕,再运行后续的任务。
我们可以将加载任务放到后台队列中,然后在主队列中执行一个任务,等待所有资
源加载完成。也就是说,所有的图片都在后台加载,当所有图片加载完成才运行主
队列中的代码:
let imagesToLoad = ["Image 1.jpg", "Image 2.jpg", "Image 3.jpg"]
let imageLoadingQueue = OperationQueue()
//
我们想让主队列不受影响,正常运行,
//
因此将后台队列标识为在后台执行
//
(注意:实际上默认就是在后台执行的,我们
//
这样做无非是演示一下
qulityOfService
属性的使用)
imageLoadingQueue.qualityOfService = QualityOfService.background
//
一次加载多张图片
imageLoadingQueue.maxConcurrentOperationCount = 10
//
创建一个任务,用于在所有图片加载完成后执行,
//
你可以根据需要进行修改
let loadingComplete = BlockOperation { () -> Void in
print("Loading complete!")
}
//
创建一个数组,用于保存所有任务
var ...