做cocos2dx也有段时间了,项目也做了几个了,总结点东西与大家分享。说的可能不是很好,纯粹当杂文看吧~~不说具体实现方法,说说思想和概念,具体方法以后有空再加上哇~
游戏客户端有几个主要的概念:场景,层,精灵,地图,动画,数据存储,网络数据交互等。一个比较完整的rpg游戏客户端,它肯定由不同的场景(CCScene)比如登录场景,选择角色场景,世界场景;其他场景都可以姑且算是UI,而在世界场景上的东西会比较多。在世界场景上,我们可以看到有几个主要的层(CCLayer),比如UI层,地图层,逻辑层等,之后我们会看到在场景上会有模型(Model)比如人物,怪物,NPC等,这些展现给玩家的都是些带有动画属性的实例,因为这些东西也包含了其他数据。当然配置表也很重要,配置表有各种杂七杂八的方法,后面再来说吧。
地图,在我的概念里,地图大概可以分为几个层级。1、背景层,2、摆件层,3、物理层,背景层就是那些不动而且不会与人物模型动画产生排序遮挡关系的图层,可能就是整个大场景的一个大沙漠背景。摆件层,是那些会与人物模型动画产生排序的图层,比如是一堆草丛,房子,树木等,人物与他们是需要进行Z值排序的。物理层,顾名思义就是阻挡人物同行性的数据,比如会导出个二维数组来保存当前地图的通行性,定义0可通行1为不可通行(随意,各个项目组老大会有自己的规则的)。
地图背景层没啥好说的,直接一张背景往屏幕上贴。摆件层就是需要和人物当前的Y值进行一个排序,当然需要在定时器里不停地去检测人物的Y和他所在摆件的Y值,然后重设一下Z值。物理层就直接A*算法吧,谷歌百度一大把。
模型动画,这个东西设计的好与坏直接影响着你程序的内存和健壮性。我之前写的一个其实我是很不满意的,当然这坑爹的就导致在不停地去修改,改的他妈都认不出来他来了,囧~回头再说动画吧,该睡觉了,情人节加元宵节,祝天下有情人终成眷属!给大家拜个晚年,阖家幸福,万事如意!