烈焰遮天 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的用法] ...
随机推荐
- Hibernate学习(5)- session的get与load方法对比
1.共同点:get和load都是根据Id单条查询获取对象 org.hibernate.Session.load(Class<User> theClass, Serializable id) ...
- Google Map API 应用实例说明
目录 Google Map API 1基础知识 1.1 Google 地图 API 概念 1.2 Google 地图的"Hello, World" 1.2.1 加载 Google ...
- Distributed Systems 分布式系统
先来扯淡,几天是14年12月31日了,茫茫然,2014就剩最后一天了.这两天国大都放假,我给自己安排了四篇博客欠账,这就是其中的第一篇,简单介绍一些分布式系统的一些概念和设计思想吧.后面三篇分别是Ne ...
- 【BZOJ】2440: [中山市选2011]完全平方数
[题意]T次询问第k小的非完全平方数倍数的数.T<=50,k<=10^9.(即无平方因子数——素因数指数皆为0或1的数) [算法]数论(莫比乌斯函数) [题解]考虑二分,转化为询问[1,x ...
- 使用Forms Authentication
using System; using System.Web; using System.Web.Security; namespace AuthTest { public class Aut ...
- SaltStack 使用笔记
centos 7安装yum -y install epel-releaseyum clean allyum makecacheyum -y install salt-minionsed -i 's/# ...
- Islands and Bridges(POJ2288+状压dp+Hamilton 回路)
题目链接:http://poj.org/problem?id=2288 题目: 题意:求Hamilton 路径权值的最大值,且求出有多少条权值这么大的Hamilton路径. 思路:状压dp,dp[i] ...
- JavaScript三种绑定事件的方式
JavaScript三种绑定事件的方式: 1. <div id="btn" onclick="clickone()"></div> // ...
- VueJS ElementUI el-table 的 formatter 和 scope template 不能同时存在
暂时可以通过 在 scope template 中自己处理格式化解决 相关issue: 2548
- 一文轻松搞懂redis集群原理及搭建与使用
今天早上由于zookeeper和redis集群不在同一虚拟机导致出了点很小错误(人为),所以这里总结一下redis集群的搭建以便日后所需同时也希望能对你有所帮助. 笔主这里使用的是Centos7.如果 ...