cocos2dx3.17.2之梦幻西游开发日志(一)


梦幻西游是很早很早的一个游戏了,最近时间比较多,刚好又有重拾开发这么一个游戏的想法。现在只完成很少一些功能,后面慢慢添加上去,在这里也算做一个简单的记录吧

开发环境

  1. 引擎选的是cocos2dx3.17.2,选这个一方面原因是它的轻量化,另一方向,也是自己用的时间比较多,相对比较熟悉。再有一点,是开源的,所以真有一些自己独特的想法引擎不支持的时候,也可以适当改源码哈哈。
  2. UI编辑器选的是cocosstudio,这个是cocoscreater出来之前cocos力让推的一套东西,想包含UI编辑器、地图编辑器、粒子编辑器在内的多种工具为一身的工具包,出了creater后就不再更新。这个我也是翻了一些时间才找到的较早版本
  3. 地图编辑器用的是tiledmap,这个是很早的编辑器了,功能也比较完善,至少对于我这样做2d的场景是足够用的。
  4. 其它的美术资源是从网上搞的,对于想单独写一个项目的开发者来说,资源恐怕是最头疼的事情之一了。目前为止的开发,也有一大半的时候都在四处找资源

已完成的功能

  1. 大框架搭起来,能进游戏。
  2. 做开始UI
  3. 创建角色并显示
  4. 角色可以控制改变方向(8方向)
  5. 角色可以移动并改变方向,停止后切换到原动作
  6. 显示角色名字
  7. 加载地图
  8. 加载NPC
  9. 显示NPC名字;这里将名字显示抽象到父类实现,这样NPC和角色名字的显示可以用统一的接口
  10. 显示怪物和怪物名字(这里在这儿做了迭代,把相关动作显示的内容全部抽象到mapElement父类中,使得实现更统一)
  11. 点击NPC后,屏幕上面显示目标名字
  12. 点击Monster后,屏幕上面显示目标名字
  13. 点击Monster之后点击技能,Monster会掉血,并在UI上显示出来

代码结构

游戏里现在只有2个Scene,一个是mainScene,一个是GameScene.

  1. mainScene执行登陆相关的逻辑,这里只完成了登陆按钮进行场景切换
  2. gameScene是游戏的主场景,包含了地图层跟角色层。地图层再细分是数据层、显示层叠、建筑层和精灵层。数据层现在暂时没添加,建筑层也是由于没有相关的资源未添加。精灵层现在包含了NpcList和Monster.
  3. 派生关系:从Sprite类派生出了CMapElement,这个类是所有地图上显示的元素的基类,它派生出了CDeffencer,这个执行所有的防御逻辑,保存防御属性,Deffencer派生出了Attacker,Attacker派生出了Role和Monster,Npc继承自Deffencer.

源码

源码

如果你想运行这个源码,你需要去官方下载cocos2dx3.17.2,然后创建新的工程名为hhxy,再把克隆到的代码、项目文件、资源拷贝到你的工程目录中,应该就可以运行。这个我没有测试过。
也欢迎各位大神review我的代码,提出宝贵的意见。

附图

cocos2dx3.17.2之梦幻西游开发日志(一)
cocos2dx3.17.2之梦幻西游开发日志(一)
cocos2dx3.17.2之梦幻西游开发日志(一)
cocos2dx3.17.2之梦幻西游开发日志(一)