烈焰遮天 cocos 手游mmo 源码 解析

引擎: cocos2.x

代码: c++ 混合 lua

游戏类型: mmo

工程结构:

game : 游戏启动地方

gamelogic:接sdk相关,登陆支付统计等

libFramework:主要本游戏相关c++库

uicontrol:

zpack:一个开源的打包文件工具

-----------------------------------------------------------------------------------------

分析libFramework:

base目录

sfapp.h : 框架app,继承了一个scene,这是本游戏的主scene基类。

cpp:

[cpp] view plain copy

  1. #include "sofia/utils/SFLog.h"
  2. #include "include/utils/SFTimeAxis.h"
  3. #include "map/StructCommon.h"
  4. #include "base/SFApp.h"
  5. #include "SFSimulator.h"
  6. //#include "download/mfDownloader.h"
  7. using namespace cocos2d;
  8. SFApp::SFApp()
  9. {
  10. //this->init();
  11. }
  12. SFApp::~SFApp()
  13. {
  14. }
  15. void SFApp::startRun()
  16. {
  17. cocos2d::CCSize size = cocos2d::CCEGLView::sharedOpenGLView()->getFrameSize();
  18. m_width = size.width;
  19. m_height = size.height;
  20. //执行update循环!
  21. getScheduler()->scheduleUpdateForTarget(this, kCCPrioritySystem, false);
  22. //虚函数,调用子类的实现
  23. this->onInit();
  24. }
  25. // void SFApp::stopRun()
  26. // {
  27. //  getScheduler()->unscheduleUpdateForTarget(this);
  28. // }
  29. //屏幕宽,
  30. int SFApp::getScreenResolutionX()
  31. {
  32. return m_width;
  33. }
  34. int SFApp::getScreenResolutionY()
  35. {
  36. return m_height;
  37. }
  38. //这个simulator,难道是cocos3.x 增加的simulator,待会看看
  39. void SFApp::onTick( int microSecs )
  40. {
  41. //SFLog("SFApp::onTick %d", microSecs);
  42. SFGameSimulator::sharedGameSimulator()->tick();//网络tick//难道这里只是网络监听而已?
  43. //MFDownloader::instance()->tick();          // 下载的回调依赖tick
  44. }
  45. void SFApp::onDraw()
  46. {
  47. }
  48. void SFApp::update( float dt )
  49. {
  50. //一个定时器实现。用来干嘛呢?
  51. //字面意思,就是在Timer里面,设了一个delaytime,这个应该全局一致
  52. SFTimeAxis* pTimeAxis = SFTimeAxis::getInstancePtr();
  53. pTimeAxis->advance(dt* 1000);
  54. onTick(pTimeAxis->getDelayTime());
  55. }
  56. void SFApp::draw( void )
  57. {
  58. cocos2d::CCScene::draw();
  59. onDraw();
  60. }
  61. void SFApp::onDestory()
  62. {
  63. }
  64. void SFApp::onExit()
  65. {
  66. this->removeAllChildrenWithCleanup(true);
  67. onDestory();
  68. cocos2d::CCScene::onExit();
  69. }
  70. bool SFApp::init()
  71. {
  72. cocos2d::CCScene::init();
  73. startRun();
  74. return true;
  75. }

先把基础的一些代码看完,

------------------------------------------------------------------------

utils目录:
ccstrconv.h 对字符串的一些基本转换处理;不错,这些平时都可以收集起来,自己写的项目可以用到

ccstrutil.h  更多的字符串处理

csvfile.h  csv文件的读写

httptools.h  对cocos提供的http进行了一些封装,这个3.x cocos有xmlhttp,本身都封装过

sfeasymail  调用curl库,直接发email,这个蛮吊的嘛!!!给客服发邮件吗?

sfthread  封装了一个线程类,分别为win和Android-iOS写了不同的实现,信号量,互斥锁,读写锁

singleton 单例模板

streamdataadapter c++和lua直接传递复杂数据的适配器,搞这么复杂。。。

sfminihtml html解析,不知哪里用到

sfexecutionthreadservice  线程的进一步封装

sfprioritynotificationcenter

sfstringutil 更详细的string处理

sftouchdispatcher

----------------------------------------------------------------

stream目录  二进制文件读写操作封装

package  热更新相关

scene scene管理

net 网络

eventset  事件

core 单独写了一个sprite类;用来显示地图上的sprite,有什么好处?

map 主要的mmo地图等元素逻辑

时间: 2024-08-30 13:56:05

烈焰遮天 cocos 手游mmo 源码 解析的相关文章

kbengine mmo源码(完整服务端源码+资源+完整客户端源码)

kbengine mmo源码(完整服务端源码+资源+完整客户端源码) PyConsole: display server information. PyConsole: Stop the server. Guiconsole: debug. Guiconsole: log. Demo: Ogre. Demo: Unity3d. demo视频:http://v.youku.com/v_show/id_XNjU5Nzc0MDQ4.html 下载地址: demo下载地址:http://sourcefo

[ios源码] 仿闲鱼二手交易平台-iOS源码-捡代码论坛

仿闲鱼二手交易平台-iOS源码-捡代码论坛 添加 首页模块和我的模块 首页水平滑动图利用自定义UICollectionViewFlowLayout实现 利用KVC,基于系统自带tabBar的进行定制实现底部TabBar. 页面跳转转场动画效果 封装刷新控件,仿闲鱼动画效果 动图演示(5.4M): Tag:闲鱼,iOS,动画,UICollectionView,视图布局 下载地址: 仿闲鱼二手交易平台-iOS源码-捡代码论坛http://bbs.jiandaima.com/thread-714-1-

亿发游时时彩-源码开发API

1)  函数指针的初始化. 函数如下: 1 int CompareString(const string& str1, const string& str2)2 {3     return str1.compare(str2); 4 } 函数的初始化有两种方式: 第一种,也是最普遍的方式: 1 int (*CompareFunction)(const string&, const string&) = CompareString; 第二种,是使用typedef定义函数类型,

网狐6603 cocos2dx 棋牌、捕鱼、休闲类游戏《李逵捕鱼》手机端完整源码分析及分享

该资源说明: cocos2d 棋牌.捕鱼.休闲类游戏<李逵捕鱼>手机端完整源码,网狐6603配套手机版源码,可以选桌子,适合新手学习参考,小编已亲测试,绝对完整可编译手机端,下载后将文件考到projects文件下面直接编译运行. 引擎版本:cocos2dx-2.2.6 资源下载:http://www.zccode.com/forum.php?mod=viewthread&tid=618&page=1&extra=#pid9095    

手写bind源码

手写bind源码 改变函数this指向的三个方法:call bind apply 三个方法的相同点: 目标函数被调用时,改变this的指向的值 三个方法都是函数的方法,挂在在Function.prototype上 不同点: 目标函数调用call和apply后,会直接被执行 目标函数调用bind后,不会立即执行,而是返回一个新的函数,调用新函数才会执行目标函数 自定义一个类似于bind函数的函数,将其挂载到函数Function上面,然后就可以用函数来调用该自定义的函数了 给函数扩展一个方法 Fun

消息中间件 RocketMQ源码解析:事务消息

关注微信公众号:[芋艿的后端小屋]有福利: RocketMQ / MyCAT / Sharding-JDBC 所有源码分析文章列表 RocketMQ / MyCAT / Sharding-JDBC 中文注释源码 GitHub 地址 您对于源码的疑问每条留言都将得到认真回复.甚至不知道如何读源码也可以请教噢. 新的源码解析文章实时收到通知.每周更新一篇左右. 1. 概述 2. 事务消息发送 2.1 Producer 发送事务消息 2.2 Broker 处理结束事务请求 2.3 Broker 生成

给jdk写注释系列之jdk1.6容器(2)-LinkedList源码解析

LinkedList是基于链表结构的一种List,在分析LinkedList源码前有必要对链表结构进行说明. 1.链表的概念 链表是由一系列非连续的节点组成的存储结构,简单分下类的话,链表又分为单向链表和双向链表,而单向/双向链表又可以分为循环链表和非循环链表,下面简单就这四种链表进行图解说明.           1.1.单向链表 单向链表就是通过每个结点的指针指向下一个结点从而链接起来的结构,最后一个节点的next指向null.      1. 2.单向循环链表           单向循环

安卓中的事件分发机制源码解析

安卓中的事件分发机制主要涉及到两类控件,一类是容器类控件ViewGroup,如常用的布局控件,另一类是显示类控件,即该控件中不能用来容纳其它控件,它只能用来显示一些资源内容,如Button,ImageView等控件.暂且称前一类控件为ViewGroup类控件(尽管ViewGroup本身也是一个View),后者为View类控件. 安卓中的事件分发机制主要涉及到dispatchTouchEvent(MotionEvent ev).onInterceptTouchEvent(MotionEvent e

HashMap 源码解析

HashMap简介: HashMap在日常的开发中应用的非常之广泛,它是基于Hash表,实现了Map接口,以键值对(key-value)形式进行数据存储,HashMap在数据结构上使用的是数组+链表.允许null键和null值,不保证键值对的顺序. HashMap检索数据的大致流程: 当我们使用HashMap搜索key所对应的value时,HashMap会根据Hash算法对key进行计算,得到一个key的hash值,再根据hash值算出该key在数组中存储的位置index,然后获取数组在inde