引擎: 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. //this->init();
  10. SFApp::~SFApp() 
  11. void SFApp::startRun() 
  12.     cocos2d::CCSize size = cocos2d::CCEGLView::sharedOpenGLView()->getFrameSize(); 
  13.     m_width = size.width; 
  14.     m_height = size.height; 
  15. //执行update循环!
  16.     getScheduler()->scheduleUpdateForTarget(this, kCCPrioritySystem, false); 
  17. //虚函数,调用子类的实现
  18. this->onInit(); 
  19. // void SFApp::stopRun()
  20. // {
  21. //  getScheduler()->unscheduleUpdateForTarget(this);
  22. // }
  23. //屏幕宽,
  24. int SFApp::getScreenResolutionX() 
  25. return m_width; 
  26. int SFApp::getScreenResolutionY() 
  27. return m_height; 
  28. //这个simulator,难道是cocos3.x 增加的simulator,待会看看
  29. void SFApp::onTick( int microSecs ) 
  30. //SFLog("SFApp::onTick %d", microSecs);
  31.     SFGameSimulator::sharedGameSimulator()->tick();//网络tick//难道这里只是网络监听而已?
  32. //MFDownloader::instance()->tick();          // 下载的回调依赖tick
  33. void SFApp::onDraw() 
  34. void SFApp::update( float dt ) 
  35. //一个定时器实现。用来干嘛呢?
  36. //字面意思,就是在Timer里面,设了一个delaytime,这个应该全局一致
  37.     SFTimeAxis* pTimeAxis = SFTimeAxis::getInstancePtr(); 
  38.     pTimeAxis->advance(dt* 1000); 
  39.     onTick(pTimeAxis->getDelayTime()); 
  40. void SFApp::draw( void ) 
  41.     cocos2d::CCScene::draw(); 
  42.     onDraw(); 
  43. void SFApp::onDestory() 
  44. void SFApp::onExit() 
  45. this->removeAllChildrenWithCleanup(true); 
  46.     onDestory(); 
  47.     cocos2d::CCScene::onExit(); 
  48. bool SFApp::init() 
  49.     cocos2d::CCScene::init(); 
  50.     startRun(); 
  51. return true; 

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

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

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

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

  1. Cocos手游录制插件:cocos-plugin

    Cocos手游录制插件:cocos-plugin Testinlab2014-10-29 13:42:27153 次阅读 Cocos手游录制插件,用于添加Testin手游自动化测试支持,支持cocos ...

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

    该资源说明: cocos2d 棋牌.捕鱼.休闲类游戏<李逵捕鱼>手机端完整源码,网狐6603配套手机版源码,可以选桌子,适合新手学习参考,小编已亲测试,绝对完整可编译手机端,下载后将文件考 ...

  3. Spring学习之——手写Spring源码V2.0(实现IOC、D、MVC、AOP)

    前言 在上一篇<Spring学习之——手写Spring源码(V1.0)>中,我实现了一个Mini版本的Spring框架,在这几天,博主又看了不少关于Spring源码解析的视频,受益匪浅,也 ...

  4. 手写koa-static源码,深入理解静态服务器原理

    这篇文章继续前面的Koa源码系列,这个系列已经有两篇文章了: 第一篇讲解了Koa的核心架构和源码:手写Koa.js源码 第二篇讲解了@koa/router的架构和源码:手写@koa/router源码 ...

  5. HashMap 源码解析

    HashMap简介: HashMap在日常的开发中应用的非常之广泛,它是基于Hash表,实现了Map接口,以键值对(key-value)形式进行数据存储,HashMap在数据结构上使用的是数组+链表. ...

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

    LinkedList是基于链表结构的一种List,在分析LinkedList源码前有必要对链表结构进行说明.   1.链表的概念      链表是由一系列非连续的节点组成的存储结构,简单分下类的话,链 ...

  7. LinkedList源码解析

    LinkedList是基于链表结构的一种List,在分析LinkedList源码前有必要对链表结构进行说明.1.链表的概念链表是由一系列非连续的节点组成的存储结构,简单分下类的话,链表又分为单向链表和 ...

  8. Masonry1.0.2 源码解析

    在了解Masonry框架之前,有必要先了解一下自动布局的概念.在iOS6之前,UI布局的方式是通过frame属性和Autoresizing来完成的,而在iOS6之后,苹果公司推出了AutoLayout ...

  9. Mybatis 系列8-结合源码解析select、resultMap的用法

    [Mybatis 系列10-结合源码解析mybatis 执行流程] [Mybatis 系列9-强大的动态sql 语句] [Mybatis 系列8-结合源码解析select.resultMap的用法] ...

随机推荐

  1. 题解【bzoj2440 [中山市选2011]完全平方数】

    Description 求第 \(k\) 个不含平方因子的正整数.多组询问.\(k \leq 10^9, T \leq 50\) Solution 网上的题解几乎都是容斥,这里给一个简单的也挺快的做法 ...

  2. POJ 3171 DP

    Cleaning Shifts Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 3563   Accepted: 1205 D ...

  3. 手脱PE Pack v1.0

    1.PEID查壳 PE Pack v1.0 2.载入OD,一上来就这架势,先F8走着 > / je ; //入口点 -\E9 C49D0000 jmp Pepack_1.0040D000 004 ...

  4. CentOS7.2下安装mongoDB3.2.8

    最近在又在倒腾MongoDB,把安装配置的相关命令贴出来 1.下载 wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70- ...

  5. AJAX 状态值与状态码详解

    1- AJAX状态值与状态码区别 AJAX状态值是指,运行AJAX所经历过的几种状态,无论访问是否成功都将响应的步骤,可以理解成为AJAX运行步骤.如:正在发送,正在响应等,由AJAX对象与服务器交互 ...

  6. Atcoder #017 agc017 A.Biscuits 简单数学

    LINK 题意:水题 求取数,使得和为奇数或偶数的方案数. 思路:统计奇数和偶数,组合求一下发现结果就是$2^{odd-1} + 2^{eve-1}$ 注意特殊情况,即奇数个为0又要求和为奇数的方案数 ...

  7. web开发之Servlet 三

    昨天我们学习了Servlet的运行过程和生命周期,那么今天我们学习下Servlet中非常重要的两个类:ServletConfig  ServletContext 我们可以看到,与顶层Servlet主动 ...

  8. 使用CSS3创建文字颜色渐变(CSS3 Text Gradient)

    考虑一下,如何在网页中达到类似以下文字渐变的效果? 传统的实现中,是用一副透明渐变的图片覆盖在文字上.具体实现方式可参考 http://www.qianduan.net/css-gradient-te ...

  9. 关于aspx.designer.cs的研究

    .aspx文件..aspx.cs文件和.aspx.designer.cs的一些说明 .aspx文件:(页面)书写页面代码.存储的是页面design代码.只是放各个控件的代码,处理代码一般放在.cs文件 ...

  10. 用C#实现对MSSqlServer数据库的增删改查---DAL层

    说明:本人完成的工作是对传感器--超声波物位计进行硬件集成,上位机通过串口接收传感器数据并将其存到数据库中:在DAL层实现对数据库的增删改查,其中包含两个数据表分别是WaterLevelSet表和Wa ...