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

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>
            亚洲午夜精品17c| 国产日韩欧美精品| 欧美精品成人| 亚洲一区二区三区精品在线| 99riav国产精品| 亚洲国产精品欧美一二99| 午夜亚洲性色视频| 久久精品天堂| 亚洲日韩欧美一区二区在线| 久久久久久久久久看片| 亚洲曰本av电影| 精品成人久久| 亚洲一区日本| 亚洲一区二区在线观看视频| 国产精品日产欧美久久久久| 久久久精品国产99久久精品芒果| 亚洲欧美中文日韩在线| 影音国产精品| 亚洲精品一区在线| 国产亚洲一区在线| 一区二区三区国产| 国产精品爽爽爽| 久久久蜜桃一区二区人| 欧美精品一卡二卡| 亚洲精品乱码久久久久久久久| 欧美国产日韩一二三区| 国产精品中文在线| 亚洲国产高清一区| 亚洲精品美女久久7777777| 国产精品久久| 亚洲激情在线| 欧美中日韩免费视频| 久久综合九九| 先锋影音国产一区| 免费看精品久久片| 久久精品一区四区| 欧美日韩一区二区三区免费| 久久婷婷久久| 欧美丝袜一区二区三区| 蘑菇福利视频一区播放| 国产精品青草久久久久福利99| 老司机午夜精品| 国产乱码精品一区二区三区不卡 | 欧美日韩中文字幕精品| 性欧美videos另类喷潮| 欧美不卡视频| 久久aⅴ国产紧身牛仔裤| 欧美国产一区二区在线观看| 久久精品首页| 国产日韩在线看| 在线视频你懂得一区| 日韩亚洲欧美一区| 欧美69视频| 老司机免费视频一区二区三区| 国产精品亚洲网站| 亚洲桃色在线一区| 一区二区三区福利| 免费一级欧美片在线观看| 久久最新视频| 伊人久久婷婷色综合98网| 西瓜成人精品人成网站| 欧美亚洲三区| 国产精品伦子伦免费视频| 亚洲美女精品成人在线视频| 亚洲欧洲视频在线| 麻豆成人精品| 亚洲国产精品黑人久久久| 在线观看国产日韩| 久久久久.com| 欧美成人国产一区二区| 亚洲国产成人在线播放| 久久视频在线免费观看| 美女免费视频一区| 亚洲人成人一区二区三区| 老司机午夜精品视频在线观看| 免费日韩av| 亚洲精品国产品国语在线app| 麻豆精品一区二区综合av| 欧美电影免费网站| 亚洲人成在线播放网站岛国| 欧美一区午夜视频在线观看| 国产精品久久综合| 久久人人爽爽爽人久久久| 亚洲免费av观看| 嫩草国产精品入口| 亚洲天堂av电影| 午夜精品福利在线| 99精品99久久久久久宅男| 国产亚洲一区在线播放| 激情伊人五月天久久综合| 国内揄拍国内精品久久| 国产日韩精品一区二区三区| 国产精品稀缺呦系列在线| 在线观看成人av电影| 国产视频亚洲精品| 亚洲福利久久| 亚洲专区欧美专区| 久久亚洲精品网站| 亚洲国产午夜| 在线视频欧美日韩| 亚洲电影成人| 欧美在线日韩在线| 午夜精品久久久久久久久久久久久| 亚洲午夜未删减在线观看| 性8sex亚洲区入口| 欧美精品一区二区视频| 国产精品超碰97尤物18| 国产一区二区三区久久精品| 日韩视频在线一区二区三区| 久久国产精品久久精品国产| 免费国产自线拍一欧美视频| 亚洲男人的天堂在线观看| 欧美日本一区二区高清播放视频| 精品99视频| 亚洲一级免费视频| 欧美黄色片免费观看| 亚洲剧情一区二区| 欧美一区二区成人6969| 国产精品激情电影| 亚洲精品专区| 亚洲成人在线网| 久久国产一区二区三区| 欧美国产精品日韩| 亚洲国产一二三| 亚洲无吗在线| 欧美日韩精品一区二区三区| 亚洲理论在线| 亚洲国产高清aⅴ视频| 亚洲精品免费观看| 欧美日韩国产麻豆| 亚洲一区在线播放| 性欧美办公室18xxxxhd| 国产亚洲在线观看| 美日韩精品免费| 亚洲午夜小视频| 一区二区激情小说| 亚洲一区在线观看视频| 亚洲高清自拍| 中文在线资源观看网站视频免费不卡 | 欧美日韩高清区| 欧美一区二区视频观看视频| 中文精品视频| 国产精品色婷婷| 欧美成人免费在线观看| 国产精品视频男人的天堂| 免费h精品视频在线播放| 亚洲综合精品四区| aa级大片欧美三级| 一区二区三区久久网| 国语精品中文字幕| 亚洲少妇最新在线视频| 好看的日韩视频| 亚洲免费影视第一页| 亚洲免费电影在线观看| 欧美另类一区| 亚洲精品国产品国语在线app| 亚洲国产综合视频在线观看| 欧美一区二区三区四区在线| 亚洲桃色在线一区| 欧美精品免费视频| 久久国产天堂福利天堂| 欧美激情小视频| 久久久久久电影| 在线成人黄色| 久久国产精品亚洲77777| 久久精品亚洲精品国产欧美kt∨| 国产精品久久久| 欧美一区二区在线看| 欧美成人午夜激情视频| 亚洲日本va午夜在线电影| 欧美福利在线| 亚洲免费网址| 欧美激情亚洲一区| 在线中文字幕一区| 欧美日韩不卡| 久久精品中文字幕一区| 美女啪啪无遮挡免费久久网站| 欧美国产亚洲视频| 亚洲一区欧美激情| 欧美韩日一区二区三区| 91久久精品国产91性色| 国产欧美日本| 欧美日本一区二区视频在线观看| 亚洲经典一区| 女人香蕉久久**毛片精品| 日韩天天综合| 红桃视频成人| 欧美国产综合一区二区| 亚洲国产精品专区久久| 老司机67194精品线观看| 久久国产日韩| 亚洲美女av在线播放| 亚洲电影免费观看高清完整版在线观看 | 欧美日本国产| 欧美激情第五页| 欧美国产综合一区二区| 麻豆精品网站| 欧美久久久久| 欧美日韩精品一二三区| 欧美一区二区三区另类|