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

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 閱讀(1000) 評論(1)  編輯 收藏 引用

Feedback

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

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            一区二区欧美精品| 国精品一区二区| 亚洲精品乱码久久久久久按摩观 | 国产精品v一区二区三区 | 欧美成人在线免费视频| 亚洲精品久久久久| av成人黄色| 国产麻豆日韩欧美久久| 久久久成人精品| 久久国产日本精品| 亚洲国产专区校园欧美| 亚洲精品一区久久久久久| 欧美日韩麻豆| 久久久www| 欧美成人一区二区三区| 亚洲欧美日本另类| 先锋影音一区二区三区| 亚洲大胆人体视频| 一区在线电影| 亚洲人人精品| 国产亚洲精品aa| 亚洲国产高清一区二区三区| 欧美日韩综合一区| 久久久久久久高潮| 欧美激情综合五月色丁香小说| 亚洲一区在线观看视频 | 老巨人导航500精品| 欧美激情一区在线| 久久手机精品视频| 欧美日韩国产精品成人| 久久综合国产精品台湾中文娱乐网| 欧美福利视频网站| 久久久久久网站| 欧美美女福利视频| 久久综合色影院| 国产精品乱码久久久久久| 亚洲成色999久久网站| 久久躁日日躁aaaaxxxx| 欧美激情精品久久久久久| 欧美亚洲视频在线看网址| 欧美成人国产一区二区| 欧美一区二区视频在线| 欧美日韩国产麻豆| 欧美1区2区视频| 亚洲精品免费看| 激情五月***国产精品| 宅男精品视频| 99在线|亚洲一区二区| 久久www免费人成看片高清 | 曰韩精品一区二区| 欧美一区91| 亚久久调教视频| 欧美偷拍另类| 日韩视频在线观看国产| 亚洲激情第一区| 久久一区二区精品| 久热这里只精品99re8久| 国产日韩欧美一二三区| 一区二区国产在线观看| 亚洲精品日本| 欧美超级免费视 在线| 暖暖成人免费视频| 国产综合在线看| 欧美一区在线看| 久久精品夜色噜噜亚洲a∨| 国产精品另类一区| 亚洲欧美国产日韩天堂区| 久久精品一区中文字幕| 国产精品自在欧美一区| av成人天堂| 99精品久久| 欧美日本免费一区二区三区| 亚洲国产精品成人综合色在线婷婷 | 国产欧美日本| 亚洲欧美日韩另类精品一区二区三区| 亚洲婷婷综合色高清在线| 欧美午夜在线一二页| 99re视频这里只有精品| 亚洲制服丝袜在线| 国产精品久久久久久久久| 亚洲在线免费| 久久精品一区四区| 精品999在线播放| 久久网站热最新地址| 欧美成人精品在线观看| 亚洲毛片在线看| 欧美日韩网址| 亚洲自拍啪啪| 免播放器亚洲| 在线一区观看| 国产伦精品一区二区三区四区免费| 欧美一区二区三区四区在线| 欧美国产三区| 亚洲尤物在线| 在线观看视频一区二区欧美日韩| 欧美成人中文字幕| 亚洲自拍偷拍一区| 欧美大片18| 亚洲欧美日韩精品综合在线观看| 国产一区二区三区四区| 欧美国产日韩一二三区| 亚洲一区二区成人在线观看| 老司机久久99久久精品播放免费| 99热这里只有精品8| 国产精品一香蕉国产线看观看 | 久久久国产91| 亚洲三级免费电影| 久久久久国产一区二区三区四区 | 99国内精品| 一区免费在线| 国产精品视频不卡| 欧美高清在线| 久久精品国产亚洲一区二区| 999在线观看精品免费不卡网站| 久久综合网色—综合色88| 中文无字幕一区二区三区| 亚洲高清在线播放| 国产精品乱码一区二三区小蝌蚪| 嫩草伊人久久精品少妇av杨幂| 亚洲一区二区在线观看视频| 亚洲二区视频在线| 久久久视频精品| 欧美伊人久久大香线蕉综合69| 日韩视频精品| 亚洲黄一区二区三区| 国内外成人在线视频| 国产精品久久久久久久久免费樱桃 | 亚洲视频视频在线| 精品99视频| 国产欧美一区二区三区在线老狼| 欧美久久久久久久久| 久久激情网站| 亚洲欧美一区二区三区极速播放 | 欧美黑人在线播放| 欧美主播一区二区三区美女 久久精品人| 亚洲国产精品一区二区www| 国产日韩欧美在线观看| 国产精品久久久久一区二区三区| 欧美区亚洲区| 欧美日韩高清在线播放| 免费看的黄色欧美网站| 久久久久免费视频| 久久狠狠亚洲综合| 欧美在线亚洲| 久久av二区| 久久se精品一区精品二区| 欧美在线免费视屏| 欧美中文在线视频| 久久精品免费电影| 久久久噜久噜久久综合| 久久久久久自在自线| 久久综合伊人| 欧美国产一区二区在线观看| 欧美黄在线观看| 欧美日韩在线大尺度| 欧美午夜精品久久久久久浪潮| 国产精品第13页| 国产美女精品视频免费观看| 国产综合自拍| 亚洲国产一区二区精品专区| 亚洲日本成人网| 亚洲最新在线视频| 亚洲欧美精品在线观看| 性欧美长视频| 狂野欧美一区| 亚洲人成高清| 亚洲综合色网站| 久久久99免费视频| 欧美激情精品| 国产毛片精品国产一区二区三区| 国产一区二区三区高清播放| 亚洲欧洲日产国产综合网| 日韩视频在线观看| 欧美在线亚洲在线| 欧美成人精品不卡视频在线观看| 亚洲国产欧美一区二区三区同亚洲| 亚洲精品在线看| 欧美一级成年大片在线观看| 美女网站在线免费欧美精品| 欧美午夜精品理论片a级大开眼界| 国产欧美一区二区三区沐欲| 亚洲缚视频在线观看| 亚洲综合色丁香婷婷六月图片| 久久久久99精品国产片| 日韩视频免费在线| 久久国产精品久久久久久| 欧美女激情福利| 国产综合婷婷| 亚洲性感激情| 国产精品欧美日韩一区二区| 在线看片第一页欧美| 亚洲欧美中文字幕| 欧美成人午夜激情| 亚洲综合色在线| 欧美激情综合在线| 亚洲国产第一页| 久久精品国产亚洲5555| 一本一本a久久| 免费毛片一区二区三区久久久| 国产伦精品免费视频|