青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

3D FPS

1234567890

  C++博客 :: 首頁 :: 聯系 :: 聚合  :: 管理
  57 Posts :: 2 Stories :: 57 Comments :: 0 Trackbacks

常用鏈接

留言簿(10)

我參與的團隊

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

1.2008/9/10 3:51:40

2.glest再分析

3.分析方法同表現形式都以文本來體現

// 所以這個是main
4.int glestMain(int argc, char** argv){

 MainWindow *mainWindow= NULL;
 Program *program= NULL;
 ExceptionHandler exceptionHandler;
 exceptionHandler.install();

 try{
  //配置文件的 程序開啟的
  Config &config = Config::getInstance();

  showCursor(config.getBool("Windowed"));
  //創建一個程序
  program= new Program();
  //創建一個窗口 以程序指針放在窗口里 可以調用窗口內的程序
  mainWindow= new MainWindow(program);

  //分析命令行 然后就根據程序設置窗口
  if(argc==2 && string(argv[1])=="-server"){
   program->initServer(mainWindow);
  }
  else if(argc==3 && string(argv[1])=="-client"){
   program->initClient(mainWindow, Ip(argv[2]));
  }
  else{
   program->initNormal(mainWindow);
  }

  //main loop
  while(Window::handleEvent()){
   program->loop();
  }
 }
 catch(const exception &e){
  restoreVideoMode();
  exceptionMessage(e);
 } 

 delete mainWindow;

 return 0;
}

5.體誤是窗口里有程序指針 程序里有窗口指針 兩個互相叼


6.如是這樣 就是《配置,窗口,程序,錯誤》這么4個類
所以一個一個分析

-----------------我是頂頂頂頂的分割線------------------------


7.MainWindow這個類是把設置一個程序指針在里面 然后把消息交給程序處理 繼成那個WindowGl類
 將消息交給程序 處理消息這個東西應該在繼成的類中
 因為我無看見

8.WindowGl這個類繼成Window這個類
 內有一個ContextGl實例類 還有3個方法initGl,makeCurrentGl,swapBuffersGl
 三個方法基本上就是ContextGl的方法 看來就真的是這樣的GL布局的Windows
 
 
9.好 看window這個類 基本上這個才真正的是一個window窗口了
 看看先 成員有好多 先看私有成員
  1.一個map 包窗口句柄與窗口指針 具體作用暫時不知道 應該保存東西 就保存窗口的 的吧
  2.成員里有好多標志的東西 還有好多屬性的東西 都是窗口的 關于大小 長寬 全屏 句柄 設備DC
 好 看成員函數
  1.好多get set 應該是成員屬性多吧
  2.重要的createWindow
      registerWindow
      LRESULT CALLBACK Window::eventRouter
      Window::handleEvent
       
  3.看得出像普通窗口一樣就設置回調消息函數
 OK 這個類無繼成什么東西了 應該是根的了
 
 
10.看那個program吧


-----------------可耕地可耕地枯無可奈何花落去 可耕地--------------

11.Program竟然無繼成什么東西喔 用的是內插的方法
  比較重要的 ProgramState *programState;
        PerformanceTimer fpsTimer;
        WindowGl *window;
       
  成員函數有 1. initNormal(WindowGl *window);
          initServer(WindowGl *window);
           initClient(WindowGl *window, const Ip &serverIp);
          
        2.mouse key 的處理
        3.init,loop,setState,setDisplaySettings
        
12.看那個initNormal吧
 void Program::initNormal(WindowGl *window){
 init(window);
 setState(new Intro(this));
}

13.好 看那個init(window)吧 我考 這么的長 真長呀 長呀

void Program::init(WindowGl *window){
 //最基本的要設置 的 窗口與配置啦
 this->window= window;
 Config &config= Config::getInstance();
 
   //set video mode設置顯示的模式
 setDisplaySettings();

 //window窗口的創建也是在這里的 暈死 程序走向也太那個了吧
 window->setText("Glest");
 window->setStyle(config.getBool("Windowed")? wsWindowedFixed: wsFullscreen);
 window->setPos(0, 0);
 window->setSize(config.getInt("ScreenWidth"), config.getInt("ScreenHeight"));
 window->create();
  
 //timers 時間的東西
 fpsTimer.init(1, maxTimes);
 updateTimer.init(GameConstants::updateFps, maxTimes);
 updateCameraTimer.init(GameConstants::cameraFps, maxTimes);

   //log start 日志的東西
 Logger &logger= Logger::getInstance();
 logger.setFile("glest.log");
 logger.clear();

 //lang 語言吧這里是語言吧
 Lang &lang= Lang::getInstance();
 lang.load("data/lang/"+ config.getString("Lang"));
   
 //render 渲染器的東西
 Renderer &renderer= Renderer::getInstance();

 window->initGl(config.getInt("ColorBits"), config.getInt("DepthBits"), config.getInt("StencilBits"));
 window->makeCurrentGl();
  
 //coreData, needs renderer, but must load before renderer init這時得到游戲的核心數據data
 CoreData &coreData= CoreData::getInstance();
    coreData.load();

 //init renderer (load global textures)OK這里渲染 是吧 應該
 renderer.init();

 //sound 這里是聲音吧
 SoundRenderer &soundRenderer= SoundRenderer::getInstance();
 soundRenderer.init(window);
}

14.看那個setState吧 無意思 不解析
void Program::setState(ProgramState *programState){
 
 delete this->programState;
 
 this->programState= programState;
 programState->load();
 programState->init();

 updateTimer.reset();
 updateCameraTimer.reset();
 fpsTimer.reset();
}

15.看這個 竟然有個MainMenu的東西 應該是菜單的 不敢確定
void Program::initClient(WindowGl *window, const Ip &serverIp){
 MainMenu* mainMenu= NULL;
 
 init(window);
 mainMenu= new MainMenu(this);
 setState(mainMenu);
 mainMenu->setState(new MenuStateJoinGame(this, mainMenu, true, serverIp));
}

16.看這個 嗯 loop吧 在這里 程序也基本上出來了 不也就是這樣的
void Program::loop(){

 //render
 programState->render();

 //update camera
 while(updateCameraTimer.isTime()){
  programState->updateCamera();
 }

 //update world
 while(updateTimer.isTime()){
  GraphicComponent::update();
  programState->update();
  SoundRenderer::getInstance().update();
  NetworkManager::getInstance().update();
 }
 
 //fps timer
 while(fpsTimer.isTime()){
  programState->tick();
 }
}

---------------------小結-----------------------
看來全在program中調用成員來做 辛苦 窗口也放在了程序里了
嗯 應該就可以看其他的子模塊了 main好似已經被我拆解了
--------------------------------------------


17.ProgramState 這個比較關鍵喔 是狀態 從字面上來理解 應該要看看
ProgramState竟然放了一個放一個program指針后 全是虛擬成員函數 看來是一個標準的東西

18.看來main還未被我拆解喔

19.那么我繼續
這個是設置那個state的 好明顯是交給了programstate了
void Program::setState(ProgramState *programState){
 
 delete this->programState;
 
 this->programState= programState;
 programState->load();
 programState->init();

 updateTimer.reset();
 updateCameraTimer.reset();
 fpsTimer.reset();
}

很有可能走去了這里 不過我還不清楚
void Game::load(){
 Logger::getInstance().setState(Lang::getInstance().get("Loading"));
 
 //tileset
    world.loadTileset(gameSettings.getTilesetPath(), &checksum);

    //tech, load before map because of resources
    world.loadTech(gameSettings.getTechPath(), &checksum);

    //map
    world.loadMap(gameSettings.getMapPath(), &checksum);
}

20.暫時設置那個mian架構是建立在那個嗯 之上的
在一個state之下 有一些繼成 然后在繼成里做一些東西 再交給指定的工人做乜

 


--------------我是不知道做什么的分割線-------------

21.好吧 這個就當是一個main的cpp吧


2008/9/11 20:36:18
 

posted on 2008-09-20 08:57 DK_jims 閱讀(1005) 評論(1)  編輯 收藏 引用

Feedback

# re: glest開源代碼大概的分析[未登錄] 2012-04-28 16:42 snow
你把最簡單的分析了  回復  更多評論
  


只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲欧美日韩国产精品| 欧美在线视频观看| 欧美成人午夜免费视在线看片 | 性欧美8khd高清极品| 国产精品日韩高清| 久久国产精品黑丝| 久久国产主播| 亚洲国产精彩中文乱码av在线播放| 免费成人激情视频| 欧美高清在线视频| 一区二区三区四区五区精品| 日韩一区二区精品葵司在线| 国产精品久久久久久av下载红粉 | 你懂的成人av| 久久只有精品| 一区二区三区精品| 亚洲一区二区视频在线观看| 国产日本欧美一区二区三区在线| 久久久久久久波多野高潮日日| 久久综合久久久久88| 这里只有精品视频在线| 亚洲欧美久久| 亚洲激情网站| 亚洲制服欧美中文字幕中文字幕| 国内视频一区| 亚洲毛片在线观看.| 国产视频精品xxxx| 亚洲人成网站在线播| 国产精品高潮呻吟视频| 麻豆91精品91久久久的内涵| 欧美精品成人一区二区在线观看| 欧美亚洲一级片| 米奇777在线欧美播放| 午夜精品亚洲一区二区三区嫩草| 久久久美女艺术照精彩视频福利播放| 在线综合欧美| 久久综合伊人77777尤物| 亚洲女同同性videoxma| 欧美成人精品一区二区三区| 午夜精彩视频在线观看不卡| 欧美电影在线观看| 久久久久久网| 国产精品视频福利| 亚洲精品国精品久久99热| 国产日产欧美精品| 999亚洲国产精| 国产日韩欧美二区| 国产日韩欧美在线播放不卡| 欧美激情精品久久久久久黑人 | 久久精品女人的天堂av| aa日韩免费精品视频一| 久久精品国产99国产精品| 亚洲一区自拍| 欧美激情四色| 欧美va日韩va| 红桃av永久久久| 亚洲男同1069视频| 亚洲免费视频观看| 欧美午夜视频在线观看| 亚洲福利专区| 亚洲精品小视频在线观看| 久久精品道一区二区三区| 亚洲一区二区精品| 欧美久久久久| aa级大片欧美| 亚洲一区二区三区中文字幕在线| 欧美 日韩 国产一区二区在线视频| 久久久久久9| 国内成+人亚洲+欧美+综合在线| 香蕉视频成人在线观看| 欧美亚洲网站| 国产在线观看一区| 久久久久.com| 欧美成年人网站| 亚洲日本va午夜在线电影 | 日韩视频精品| 在线视频亚洲一区| 欧美日韩视频在线一区二区观看视频 | 一道本一区二区| 欧美另类人妖| 一区二区福利| 欧美资源在线观看| 精品51国产黑色丝袜高跟鞋| 久久久久一本一区二区青青蜜月| 另类欧美日韩国产在线| 伊人成年综合电影网| 麻豆精品91| 亚洲精品日韩在线观看| 亚洲女同精品视频| 国产视频自拍一区| 久久久美女艺术照精彩视频福利播放| 欧美成人一区二区三区| 夜夜嗨av一区二区三区中文字幕| 欧美日韩伦理在线免费| 亚洲综合三区| 欧美xart系列高清| 亚洲先锋成人| 在线精品视频一区二区| 欧美精品观看| 亚洲欧美国产另类| 欧美激情a∨在线视频播放| 亚洲一区二区三区午夜| 国产一区二区三区高清播放| 欧美国产日韩一区二区| 亚洲免费一在线| 亚洲福利视频一区二区| 久久国产精品免费一区| 亚洲青色在线| 国产一区清纯| 欧美视频精品一区| 久久综合网hezyo| 亚洲在线观看视频| 亚洲国产精品日韩| 久久久噜噜噜久久中文字免 | 国产精品久在线观看| 久久久精品动漫| 亚洲天堂av电影| 欧美黄色一区| 久久免费视频网| 亚洲欧美第一页| 亚洲精品久久久蜜桃| 黑人巨大精品欧美黑白配亚洲| 欧美日韩美女在线观看| 久久婷婷国产综合尤物精品| 亚洲一二三区精品| 亚洲激情午夜| 欧美不卡在线| 老司机免费视频一区二区| 亚洲欧美久久久| 亚洲网友自拍| 亚洲毛片在线观看| 亚洲狠狠丁香婷婷综合久久久| 国产精品性做久久久久久| 欧美日韩一级片在线观看| 欧美承认网站| 欧美成人一区在线| 免费亚洲电影在线观看| 久久免费视频网| 久久久久久香蕉网| 久久久久久亚洲精品不卡4k岛国| 午夜精品久久久久久久男人的天堂 | 亚洲精品国产精品久久清纯直播| 欧美阿v一级看视频| 久久久久久穴| 久久综合九色九九| 免费亚洲网站| 欧美激情精品久久久| 母乳一区在线观看| 美女视频黄a大片欧美| 久久中文欧美| 免费在线成人| 欧美国产先锋| 亚洲人体大胆视频| 亚洲免费大片| 亚洲午夜羞羞片| 亚洲女同性videos| 久久aⅴ国产紧身牛仔裤| 久久久久国产精品一区| 麻豆精品传媒视频| 欧美激情欧美激情在线五月| 欧美日韩国产探花| 国产精品久久国产精品99gif| 国产精品igao视频网网址不卡日韩| 欧美视频日韩视频| 国产欧美精品一区二区色综合| 国语自产精品视频在线看8查询8| 狠狠色狠色综合曰曰| 亚洲黄色片网站| 亚洲午夜在线| 久久久一本精品99久久精品66| 免费的成人av| 夜夜嗨av一区二区三区网页| 欧美亚洲一级| 免费观看成人| 国产精品美女久久久浪潮软件| 国产综合在线看| 亚洲免费精品| 久久精品三级| 亚洲日韩欧美一区二区在线| 亚洲一区激情| 蜜臀久久99精品久久久久久9| 欧美午夜视频| 亚洲国产精品一区在线观看不卡 | 久久精品国亚洲| 亚洲国产精品一区二区久| 亚洲视频999| 久久综合五月| 国产美女精品视频| 99在线精品免费视频九九视| 久久久精品免费视频| 亚洲黄色av一区| 久久不见久久见免费视频1| 欧美精品一区二区三区蜜桃| 好吊色欧美一区二区三区四区 | 亚洲伦理精品| 久久琪琪电影院| 亚洲天堂第二页| 欧美女人交a| 亚洲成人在线视频网站| 欧美亚洲一区二区在线|