RPG游戏心得

本文为firedragonpzy原创,转载务必在明显处注明:
转载自【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++语言的理解与掌握。

你可能感兴趣的:(cocos2d-x)