转载自【Softeware MyZone】原文链接: http://www.firedragonpzy.com.cn/index.php/archives/1073
这文章写了好久了,也一直没有空发表…… (一)有关游戏进度系统,设置两个标识 1、static const char gcCURPROGRESSMARK[] ="cur_progress_mark"; 2、static const char gcPROGRESSMAKE[] ="progress_mark"; 1)先来说一下gcCURPROGRESSMARK,它存取当前进度值,而gcPROGRESSMAKE用来存取总进度。就拿打怪来说,怪是你自己封装的精灵,不同的关卡有不同的怪,所以需要设置gcCURPROGRESSMARK,来区分在本场景中应该出现什么怪。当然,你也可以不用这个标识,另外设置一个标识。但这个标识可以在多个地方使用,我们本着尽量少使用静态变量,少占用内存,提高游戏运行速率为原则,所以,使用此标识。 2)再来说一下gcPROGRESSMAKE 。因为RPG游戏的关卡或者是某些场景你可以多次进入,当你首次进入和以后进入部分道具什么的使用是不同的 ,例如宝箱,第一次进入有,再此进入就没有了。第一次获得的是金币, 再次进入获取的及有可能是各种符。另外,有些场景或者任务不是一开始就开启的,所以设置了gcPROGRESSMAKE。 3)有关进度,也有像如愤怒的小鸟那种,也可以将每一小关设置标识,三个标识即可,未开启,开启,玩过。如果有购买,还要设计是否购买的标识。 (二)有关数据的加载 一般,游戏的开始都会有加载动画,这时候可以设置部分初始值,一般是音乐音效和游戏的进度值,这个也可以在之后设置,但是进度可以区分是否首次进入,以便初始化音乐,所以在此设置,有关音乐音效的设置,可以参考此文http://www.firedragonpzy.com.cn/index.php/archives/905。动画后会是菜单,这时候加载主要数据,读取人物属性、任务等数据。菜单后进入游戏场景。 (三)有关效率及内存问题 注意点:1)CCMutableArray 记得removeAllObjects并且release (四)所思所得即总结梳理: 1)定义一个头文件,集合共用的头文件,进行一次性引入。 2)定义ISDEBUG一个常量(bool类型),供调试使用,例如: if (ISDEBUG) { CCLOG("MainGameScene release"); } 开发期间你使用ture,发布时可以改为false。当然有人可能会考虑到效率问题,这是你可以ctrl+H,将查找内容改为:ISDEBUG,查找范围改为:当前项目,进行删除。这样不仅便于调试,而且更利于你对cocos2d-x/c++语言的理解与掌握。