天天看点

(NO.00005)iOS实现炸弹人游戏(四):游戏数据的初始化(一)

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;)

上一篇我们初步看了一下mainscene类的初始化方法里都做了神马事,其中随机化地图是在initgamedatafromgd方法里做的,我们就来深入看看这个方法.

该方法是一个比较长的方法,里面又调用了若干其他方法,我把其中主要的代码在下面列出来:

该方法里面比较”杂”,它主要做了如下这些事:

将ios设备中存储的数据读到内存中,这样每次玩的记录和内容都可以保存和再加载,这是在loadgamedata方法中完成的,后面会介绍

根据游戏数据设置hud层中对应的标签,hud是我们游戏中的仪表盘:

(NO.00005)iOS实现炸弹人游戏(四):游戏数据的初始化(一)

其中包括了剩余的生命数,炸弹数,当前累积的分数,当前炸弹的威力大小,游戏剩余的时间等等标签.在实际游戏中显示如下:

(NO.00005)iOS实现炸弹人游戏(四):游戏数据的初始化(一)

最左边那列竖条实际是显示在屏幕可见范围之外,需要的时候在弹进来,这里先不用管吧.

根据游戏数据设置游戏主角的属性:是否可以穿墙和穿炸弹,是否处于高速移动状态

更新hud中的状态标签,调用的是updatestatelabel方法,后面会提及

接下来初始化可布局的所有瓦块坐标,调用的方法是initnowalltiles方法

然后调用randomcreatemap来创建随机地图,别急马上就会讲到

初始化所有可达的瓦块,调用的方法为initwalkabletiles方法

初始化firesprite敌人类中的所有类名称

根据关卡中的数据”产出”敌人,调用的是spawnfiresprites3方法