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

2018-06-17 22:12:08来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

20160820011207843

引擎: 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地图等元素逻辑

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:C++ 大多数人将 cin::sync() 视为清除缓存区函数的误用

下一篇:P2946 [USACO09MAR]牛飞盘队Cow Frisbee Team