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