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

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
你把最簡單的分析了  回復  更多評論
  


只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   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>
            麻豆乱码国产一区二区三区| 亚欧成人在线| 久久综合九色欧美综合狠狠| 免费观看成人| 久久综合九色99| 韩国精品在线观看| 欧美伊人久久久久久午夜久久久久| 国产精品99久久久久久有的能看 | 亚洲一区二区三区在线视频| 欧美日韩国产一区二区三区| 日韩午夜电影av| 亚洲资源在线观看| 国产伦精品一区二区三区高清| 亚洲欧美一区二区视频| 久久亚洲国产精品日日av夜夜| 精品福利免费观看| 免费日韩av| 亚洲视屏一区| 欧美福利在线观看| 亚洲一品av免费观看| 国产精品视频yy9299一区| 欧美一区二区三区的| 亚洲人成网站在线观看播放| 最新亚洲激情| 国产欧美精品va在线观看| 久久综合99re88久久爱| 中国亚洲黄色| 欧美激情一区三区| 久久成人精品视频| 一本一本久久| 精品盗摄一区二区三区| 欧美日韩亚洲91| 久久免费偷拍视频| 亚洲一区二区欧美日韩| 女人天堂亚洲aⅴ在线观看| 亚洲少妇最新在线视频| 狠狠色狠狠色综合系列| 欧美日韩精品一区二区天天拍小说| 性欧美video另类hd性玩具| 亚洲欧洲一区二区在线播放| 欧美与欧洲交xxxx免费观看 | 亚洲欧美国内爽妇网| 最新国产精品拍自在线播放| 欧美插天视频在线播放| 午夜在线视频观看日韩17c| 亚洲高清在线观看| 国产一区二区精品久久99| 欧美日韩精品在线播放| 麻豆91精品91久久久的内涵| 欧美亚洲自偷自偷| 亚洲在线中文字幕| 99国内精品久久久久久久软件| 久久都是精品| 亚洲一区欧美一区| aⅴ色国产欧美| 亚洲精品一区在线| 亚洲国产天堂久久国产91| 国产日产亚洲精品| 国产精品久线观看视频| 欧美美女bb生活片| 欧美岛国激情| 欧美成人精品三级在线观看| 免费毛片一区二区三区久久久| 欧美资源在线观看| 久久久7777| 久久夜色精品国产亚洲aⅴ| 久久色在线播放| 久久久欧美精品sm网站| 久久久久久自在自线| 亚洲欧美日韩综合国产aⅴ| 亚洲在线一区| 欧美影院精品一区| 久久亚洲影音av资源网| 欧美成人精品影院| 欧美日韩国产精品| 国产精品综合色区在线观看| 国产日韩av一区二区| 国产字幕视频一区二区| 1000部精品久久久久久久久| 亚洲激情一区二区| 亚洲午夜精品久久久久久app| 亚洲在线观看| 久久久久久久999精品视频| 麻豆久久婷婷| 亚洲精品国产精品国自产观看 | 亚洲一区免费看| 欧美在线观看你懂的| 欧美成人第一页| 亚洲精品资源美女情侣酒店| 亚洲免费一级电影| 久久视频在线看| 欧美日韩国产精品| 国产在线精品一区二区中文| 亚洲成色777777女色窝| a4yy欧美一区二区三区| 久久久久久久久蜜桃| 亚洲国产精品久久久久秋霞影院| 蜜桃精品久久久久久久免费影院| 国产人成一区二区三区影院| 黄色日韩网站| 夜夜嗨网站十八久久| 国产亚洲精品一区二555| 亚洲美女毛片| 牛牛精品成人免费视频| 美女视频黄a大片欧美| 午夜视频久久久久久| 久久国产日韩| 亚洲国产欧洲综合997久久| 亚洲国产女人aaa毛片在线| 亚洲伦理自拍| 六月婷婷久久| 国产精品毛片a∨一区二区三区|国| 国产综合在线视频| 一区二区三区视频观看| 欧美成人a视频| 亚洲一区免费观看| 欧美激情在线有限公司| 伊人伊人伊人久久| 亚洲一区不卡| 亚洲人体一区| 欧美激情视频给我| 亚洲电影免费观看高清完整版| 亚洲欧美日韩在线播放| 亚洲精品美女在线观看| 美女被久久久| 在线不卡视频| 欧美aaa级| 久久电影一区| 国产日韩综合| 亚洲免费在线观看| 99精品欧美一区二区蜜桃免费| 久久亚洲综合| 亚洲成人在线免费| 美日韩免费视频| 亚洲欧美综合另类中字| 国产精品久久久久久影视| 亚洲色图制服丝袜| 最新亚洲视频| 欧美黄色aa电影| 亚洲精品一线二线三线无人区| 欧美成人精品h版在线观看| 久久亚洲一区二区| 一色屋精品视频免费看| 蜜臀91精品一区二区三区| 久久99伊人| 亚洲国产成人不卡| 91久久综合亚洲鲁鲁五月天| 欧美日韩不卡合集视频| 亚洲免费观看高清完整版在线观看| 欧美国产91| 欧美日本亚洲| 亚洲一区久久久| 久久综合伊人77777蜜臀| 红桃视频国产一区| 麻豆精品视频在线观看| 久久久蜜桃精品| 亚洲国产欧美日韩精品| 亚洲欧洲日产国产综合网| 免费久久久一本精品久久区| 亚洲国产欧美不卡在线观看| 亚洲免费高清视频| 国产精品久久久久久久第一福利| 欧美中文在线字幕| 久久久久久久一区二区三区| 91久久精品日日躁夜夜躁欧美| 亚洲人在线视频| 国产精品国产a级| 鲁大师影院一区二区三区| 欧美成人精品1314www| 亚洲香蕉视频| 久久久免费av| 亚洲综合视频在线| 久久久青草青青国产亚洲免观| 亚洲激情六月丁香| 宅男精品视频| 在线精品国精品国产尤物884a| 亚洲另类在线视频| 激情综合视频| 亚洲专区在线| 一区二区免费看| 欧美有码在线观看视频| 99综合视频| 久久精品网址| 午夜精品福利电影| 欧美成人精品在线| 久久精品成人一区二区三区蜜臀| 欧美不卡三区| 久久国产综合精品| 欧美日韩亚洲高清一区二区| 久久成人亚洲| 欧美四级电影网站| 欧美大片在线观看一区| 国产午夜精品一区理论片飘花 | 亚洲欧美日韩另类| 老司机午夜精品| 久久久久久夜精品精品免费| 国产精品久久一区二区三区| 欧美福利小视频| 精品999久久久| 欧美一级久久久久久久大片|