烈焰遮天 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
- #include "sofia/utils/SFLog.h"
- #include "include/utils/SFTimeAxis.h"
- #include "map/StructCommon.h"
- #include "base/SFApp.h"
- #include "SFSimulator.h"
- //#include "download/mfDownloader.h"
- using namespace cocos2d;
- SFApp::SFApp()
- {
- //this->init();
- }
- SFApp::~SFApp()
- {
- }
- void SFApp::startRun()
- {
- cocos2d::CCSize size = cocos2d::CCEGLView::sharedOpenGLView()->getFrameSize();
- m_width = size.width;
- m_height = size.height;
- //执行update循环!
- getScheduler()->scheduleUpdateForTarget(this, kCCPrioritySystem, false);
- //虚函数,调用子类的实现
- this->onInit();
- }
- // void SFApp::stopRun()
- // {
- // getScheduler()->unscheduleUpdateForTarget(this);
- // }
- //屏幕宽,
- int SFApp::getScreenResolutionX()
- {
- return m_width;
- }
- int SFApp::getScreenResolutionY()
- {
- return m_height;
- }
- //这个simulator,难道是cocos3.x 增加的simulator,待会看看
- void SFApp::onTick( int microSecs )
- {
- //SFLog("SFApp::onTick %d", microSecs);
- SFGameSimulator::sharedGameSimulator()->tick();//网络tick//难道这里只是网络监听而已?
- //MFDownloader::instance()->tick(); // 下载的回调依赖tick
- }
- void SFApp::onDraw()
- {
- }
- void SFApp::update( float dt )
- {
- //一个定时器实现。用来干嘛呢?
- //字面意思,就是在Timer里面,设了一个delaytime,这个应该全局一致
- SFTimeAxis* pTimeAxis = SFTimeAxis::getInstancePtr();
- pTimeAxis->advance(dt* 1000);
- onTick(pTimeAxis->getDelayTime());
- }
- void SFApp::draw( void )
- {
- cocos2d::CCScene::draw();
- onDraw();
- }
- void SFApp::onDestory()
- {
- }
- void SFApp::onExit()
- {
- this->removeAllChildrenWithCleanup(true);
- onDestory();
- cocos2d::CCScene::onExit();
- }
- bool SFApp::init()
- {
- cocos2d::CCScene::init();
- startRun();
- 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 源码 解析的更多相关文章
- Cocos手游录制插件:cocos-plugin
Cocos手游录制插件:cocos-plugin Testinlab2014-10-29 13:42:27153 次阅读 Cocos手游录制插件,用于添加Testin手游自动化测试支持,支持cocos ...
- 网狐6603 cocos2dx 棋牌、捕鱼、休闲类游戏《李逵捕鱼》手机端完整源码分析及分享
该资源说明: cocos2d 棋牌.捕鱼.休闲类游戏<李逵捕鱼>手机端完整源码,网狐6603配套手机版源码,可以选桌子,适合新手学习参考,小编已亲测试,绝对完整可编译手机端,下载后将文件考 ...
- Spring学习之——手写Spring源码V2.0(实现IOC、D、MVC、AOP)
前言 在上一篇<Spring学习之——手写Spring源码(V1.0)>中,我实现了一个Mini版本的Spring框架,在这几天,博主又看了不少关于Spring源码解析的视频,受益匪浅,也 ...
- 手写koa-static源码,深入理解静态服务器原理
这篇文章继续前面的Koa源码系列,这个系列已经有两篇文章了: 第一篇讲解了Koa的核心架构和源码:手写Koa.js源码 第二篇讲解了@koa/router的架构和源码:手写@koa/router源码 ...
- HashMap 源码解析
HashMap简介: HashMap在日常的开发中应用的非常之广泛,它是基于Hash表,实现了Map接口,以键值对(key-value)形式进行数据存储,HashMap在数据结构上使用的是数组+链表. ...
- 给jdk写注释系列之jdk1.6容器(2)-LinkedList源码解析
LinkedList是基于链表结构的一种List,在分析LinkedList源码前有必要对链表结构进行说明. 1.链表的概念 链表是由一系列非连续的节点组成的存储结构,简单分下类的话,链 ...
- LinkedList源码解析
LinkedList是基于链表结构的一种List,在分析LinkedList源码前有必要对链表结构进行说明.1.链表的概念链表是由一系列非连续的节点组成的存储结构,简单分下类的话,链表又分为单向链表和 ...
- Masonry1.0.2 源码解析
在了解Masonry框架之前,有必要先了解一下自动布局的概念.在iOS6之前,UI布局的方式是通过frame属性和Autoresizing来完成的,而在iOS6之后,苹果公司推出了AutoLayout ...
- Mybatis 系列8-结合源码解析select、resultMap的用法
[Mybatis 系列10-结合源码解析mybatis 执行流程] [Mybatis 系列9-强大的动态sql 语句] [Mybatis 系列8-结合源码解析select.resultMap的用法] ...
随机推荐
- 题解【bzoj2440 [中山市选2011]完全平方数】
Description 求第 \(k\) 个不含平方因子的正整数.多组询问.\(k \leq 10^9, T \leq 50\) Solution 网上的题解几乎都是容斥,这里给一个简单的也挺快的做法 ...
- POJ 3171 DP
Cleaning Shifts Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 3563 Accepted: 1205 D ...
- 手脱PE Pack v1.0
1.PEID查壳 PE Pack v1.0 2.载入OD,一上来就这架势,先F8走着 > / je ; //入口点 -\E9 C49D0000 jmp Pepack_1.0040D000 004 ...
- CentOS7.2下安装mongoDB3.2.8
最近在又在倒腾MongoDB,把安装配置的相关命令贴出来 1.下载 wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70- ...
- AJAX 状态值与状态码详解
1- AJAX状态值与状态码区别 AJAX状态值是指,运行AJAX所经历过的几种状态,无论访问是否成功都将响应的步骤,可以理解成为AJAX运行步骤.如:正在发送,正在响应等,由AJAX对象与服务器交互 ...
- Atcoder #017 agc017 A.Biscuits 简单数学
LINK 题意:水题 求取数,使得和为奇数或偶数的方案数. 思路:统计奇数和偶数,组合求一下发现结果就是$2^{odd-1} + 2^{eve-1}$ 注意特殊情况,即奇数个为0又要求和为奇数的方案数 ...
- web开发之Servlet 三
昨天我们学习了Servlet的运行过程和生命周期,那么今天我们学习下Servlet中非常重要的两个类:ServletConfig ServletContext 我们可以看到,与顶层Servlet主动 ...
- 使用CSS3创建文字颜色渐变(CSS3 Text Gradient)
考虑一下,如何在网页中达到类似以下文字渐变的效果? 传统的实现中,是用一副透明渐变的图片覆盖在文字上.具体实现方式可参考 http://www.qianduan.net/css-gradient-te ...
- 关于aspx.designer.cs的研究
.aspx文件..aspx.cs文件和.aspx.designer.cs的一些说明 .aspx文件:(页面)书写页面代码.存储的是页面design代码.只是放各个控件的代码,处理代码一般放在.cs文件 ...
- 用C#实现对MSSqlServer数据库的增删改查---DAL层
说明:本人完成的工作是对传感器--超声波物位计进行硬件集成,上位机通过串口接收传感器数据并将其存到数据库中:在DAL层实现对数据库的增删改查,其中包含两个数据表分别是WaterLevelSet表和Wa ...