
330
|
第
11
章
11.2
快速加载关卡
问题
我们想尽可能快地加载每一关,以便用户能够快速进入游戏。
解决方案
要使关卡的加载速度更快,主要有三种技术:
加载更小或者更少的资源
将要加载的声音或图片大小降低。减少纹理图片的大小,压缩图片,使用音质
更差的声音。或者,减少要加载的资源数。
显示进度条
在加载新关卡时,计算一下需要加载的资源数,每加载完成一个资源,将进
度立即显示给用户,可以使用一个进度条来显示(例如一个
UILabel
或者一个
UIProgressView
),也可以使用一个
UITextField
。
流纹理
在加载开始时,加载较小的资源,比如非常小的图片,当游戏开始后,再通过
后台线程加载完全大小的图片;每当一个高清图片加载完,就替换掉一个与之
对应的小图片。
讨论
所有的办法中,有一半的方法是使游戏“看起来变快了”,而另一半方法则是使游
戏“真的变快了”。
加载更小的资源意味着需要传输的数据更小。一个
iOS
设备其实是由一些相互关联
的小的零部件构成的,它需要从闪存芯片将数据传输给
CPU
和
GPU
。几乎在任何
情况下,要想“加载快”就得“加载少”。
如果在某些情况下真的没办法提高加载速度,那至少要显示一个进度条给用户以便
让用户能够看到加载过程。如果你只是在屏幕上显示一个不会动的“
loading
”文本,
玩家会觉得很枯燥,这样玩家会觉得时间变长了。我们可以看一下在游戏以外的例