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

来源:互联网 发布:usb网络共享驱动下载 编辑:程序博客网 时间:2024/05/02 05:48

引擎: cocos2.x

代码: c++ 混合 lua

游戏类型: mmo


工程结构:

game : 游戏启动地方

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

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

uicontrol:

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


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

分析libFramework:

base目录

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

cpp: 

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






0 0
原创粉丝点击