![20160820011207843 20160820011207843](http://static.javashuo.com/static/loading.gif)
引擎: cocos2.xhtml
代碼: c++ 混合 luaandroid
遊戲類型: mmoios
工程結構:c++
game : 遊戲啓動地方網絡
gamelogic:接sdk相關,登錄支付統計等app
libFramework:主要本遊戲相關c++庫框架
uicontrol:curl
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地圖等元素邏輯