烈焰遮天 cocos 手遊mmo 源碼 解析

20160820011207843

引擎: 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

  1. #include "sofia/utils/SFLog.h"
  2. #include "include/utils/SFTimeAxis.h"
  3. #include "map/StructCommon.h"
  4. #include "base/SFApp.h"
  5. #include "SFSimulator.h"
  6. //#include "download/mfDownloader.h"
  7. using namespace cocos2d; 
  8. SFApp::SFApp() 
  9. //this->init();
  10. SFApp::~SFApp() 
  11. void SFApp::startRun() 
  12.     cocos2d::CCSize size = cocos2d::CCEGLView::sharedOpenGLView()->getFrameSize(); 
  13.     m_width = size.width; 
  14.     m_height = size.height; 
  15. //執行update循環!
  16.     getScheduler()->scheduleUpdateForTarget(this, kCCPrioritySystem, false); 
  17. //虛函數,調用子類的實現
  18. this->onInit(); 
  19. // void SFApp::stopRun()
  20. // {
  21. //  getScheduler()->unscheduleUpdateForTarget(this);
  22. // }
  23. //屏幕寬,
  24. int SFApp::getScreenResolutionX() 
  25. return m_width; 
  26. int SFApp::getScreenResolutionY() 
  27. return m_height; 
  28. //這個simulator,難道是cocos3.x 增長的simulator,待會看看
  29. void SFApp::onTick( int microSecs ) 
  30. //SFLog("SFApp::onTick %d", microSecs);
  31.     SFGameSimulator::sharedGameSimulator()->tick();//網絡tick//難道這裏只是網絡監聽而已?
  32. //MFDownloader::instance()->tick();          // 下載的回調依賴tick
  33. void SFApp::onDraw() 
  34. void SFApp::update( float dt ) 
  35. //一個定時器實現。用來幹嗎呢?
  36. //字面意思,就是在Timer裏面,設了一個delaytime,這個應該全局一致
  37.     SFTimeAxis* pTimeAxis = SFTimeAxis::getInstancePtr(); 
  38.     pTimeAxis->advance(dt* 1000); 
  39.     onTick(pTimeAxis->getDelayTime()); 
  40. void SFApp::draw( void ) 
  41.     cocos2d::CCScene::draw(); 
  42.     onDraw(); 
  43. void SFApp::onDestory() 
  44. void SFApp::onExit() 
  45. this->removeAllChildrenWithCleanup(true); 
  46.     onDestory(); 
  47.     cocos2d::CCScene::onExit(); 
  48. bool SFApp::init() 
  49.     cocos2d::CCScene::init(); 
  50.     startRun(); 
  51. 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地圖等元素邏輯

相關文章
相關標籤/搜索