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

3D FPS

1234567890

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

常用鏈接

留言簿(10)

我參與的團(tuán)隊(duì)

搜索

  •  

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

1.2008/9/10 3:51:40

2.glest再分析

3.分析方法同表現(xiàn)形式都以文本來體現(xiàn)

// 所以這個(gè)是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"));
  //創(chuàng)建一個(gè)程序
  program= new Program();
  //創(chuàng)建一個(gè)窗口 以程序指針放在窗口里 可以調(diào)用窗口內(nèi)的程序
  mainWindow= new MainWindow(program);

  //分析命令行 然后就根據(jù)程序設(shè)置窗口
  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.體誤是窗口里有程序指針 程序里有窗口指針 兩個(gè)互相叼


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

-----------------我是頂頂頂頂?shù)姆指罹€------------------------


7.MainWindow這個(gè)類是把設(shè)置一個(gè)程序指針在里面 然后把消息交給程序處理 繼成那個(gè)WindowGl類
 將消息交給程序 處理消息這個(gè)東西應(yīng)該在繼成的類中
 因?yàn)槲覠o看見

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


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

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

13.好 看那個(gè)init(window)吧 我考 這么的長(zhǎng) 真長(zhǎng)呀 長(zhǎng)呀

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

 //window窗口的創(chuàng)建也是在這里的 暈死 程序走向也太那個(gè)了吧
 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 時(shí)間的東西
 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這時(shí)得到游戲的核心數(shù)據(jù)data
 CoreData &coreData= CoreData::getInstance();
    coreData.load();

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

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

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

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

15.看這個(gè) 竟然有個(gè)MainMenu的東西 應(yīng)該是菜單的 不敢確定
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.看這個(gè) 嗯 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();
 }
}

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


17.ProgramState 這個(gè)比較關(guān)鍵喔 是狀態(tài) 從字面上來理解 應(yīng)該要看看
ProgramState竟然放了一個(gè)放一個(gè)program指針后 全是虛擬成員函數(shù) 看來是一個(gè)標(biāo)準(zhǔn)的東西

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

19.那么我繼續(xù)
這個(gè)是設(shè)置那個(gè)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.暫時(shí)設(shè)置那個(gè)mian架構(gòu)是建立在那個(gè)嗯 之上的
在一個(gè)state之下 有一些繼成 然后在繼成里做一些東西 再交給指定的工人做乜

 


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

21.好吧 這個(gè)就當(dāng)是一個(gè)main的cpp吧


2008/9/11 20:36:18
 

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

Feedback

# re: glest開源代碼大概的分析[未登錄] 2012-04-28 16:42 snow
你把最簡(jiǎn)單的分析了  回復(fù)  更多評(píng)論
  


只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   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>
            一本色道久久综合一区| 欧美午夜精品理论片a级按摩| 日韩一区二区高清| 欧美专区一区二区三区| 一区二区三区波多野结衣在线观看| 性感少妇一区| 亚洲欧美日韩在线观看a三区| 欧美成人午夜激情| 免费成人毛片| 国产一区二区三区四区hd| 一本大道久久a久久精二百| 亚洲第一视频| 久久人人看视频| 久久综合色天天久久综合图片| 国产精品一区二区三区久久| 夜夜夜精品看看| 亚洲婷婷综合久久一本伊一区| 欧美电影免费观看网站| 欧美v国产在线一区二区三区| 国产一区二区三区高清在线观看| 亚洲尤物视频在线| 午夜精品久久久久久久男人的天堂| 欧美连裤袜在线视频| 亚洲精品123区| 亚洲激情偷拍| 女仆av观看一区| 亚洲国产欧美日韩| 99视频精品在线| 欧美日韩一区二区欧美激情 | 亚洲天堂男人| 欧美日韩欧美一区二区| 一本一本久久| 午夜精品在线| 国产综合欧美在线看| 久久国产婷婷国产香蕉| 久久综合色影院| 亚洲清纯自拍| 欧美午夜电影完整版| 中文av字幕一区| 久久精品国产精品亚洲精品| 国产无一区二区| 卡通动漫国产精品| 亚洲精品午夜精品| 午夜精品剧场| 在线看国产日韩| 欧美日韩国产一区| 午夜久久电影网| 欧美激情一区二区久久久| 一区二区三区精密机械公司 | 久久久综合免费视频| 亚洲国产高清一区二区三区| 一区二区三区久久网| 国产精品免费小视频| 久久精品国产999大香线蕉| 欧美国产精品久久| 亚洲天堂av图片| 国内久久婷婷综合| 欧美区一区二区三区| 亚洲永久网站| 欧美激情一区二区三区四区| 亚洲欧美日韩视频一区| 在线日本成人| 国产精品一区二区三区免费观看| 久久久综合免费视频| av成人免费在线观看| 麻豆91精品91久久久的内涵| 99精品热6080yy久久 | 欧美三日本三级少妇三2023| 欧美一级二区| 999亚洲国产精| 麻豆精品网站| 欧美在线视屏| 国产精品99久久99久久久二8 | 欧美午夜不卡视频| 欧美在线视频观看免费网站| 亚洲青涩在线| 久久中文久久字幕| 亚洲嫩草精品久久| 亚洲精品国产精品国产自| 国产免费观看久久| 欧美日韩视频在线一区二区观看视频 | 日韩视频在线一区| 狠狠v欧美v日韩v亚洲ⅴ| 欧美精品亚洲二区| 久久综合久久久久88| 亚洲欧美国内爽妇网| 日韩视频欧美视频| 亚洲国产天堂久久国产91| 久久久久久夜精品精品免费| 午夜精品久久久久久久99热浪潮| 亚洲精品久久久久久一区二区| 国产一区清纯| 国产欧美精品xxxx另类| 国产精品成人免费视频| 欧美日韩国产精品一区二区亚洲| 久久综合给合| 久久青青草综合| 久久久久国色av免费看影院| 性欧美18~19sex高清播放| 亚洲视频中文| 亚洲综合99| 亚洲欧美国产另类| 亚洲欧美一区二区激情| 亚洲免费在线播放| 亚洲午夜精品国产| 亚洲一二三四区| 亚洲欧美日韩成人高清在线一区| 99在线|亚洲一区二区| aa亚洲婷婷| 亚洲图片欧美午夜| 午夜国产欧美理论在线播放| 亚洲一区亚洲| 欧美在线一级va免费观看| 欧美中文字幕不卡| 久久影视精品| 欧美h视频在线| 欧美精品二区| 国产精品va在线| 国产九色精品成人porny| 国产视频观看一区| 精品88久久久久88久久久| 亚洲电影免费观看高清完整版在线| 136国产福利精品导航网址应用| 在线精品亚洲| 亚洲理论在线观看| 亚洲欧美春色| 久久免费黄色| 亚洲国产一区二区三区a毛片 | 亚洲高清不卡av| 亚洲每日更新| 亚洲欧美一区二区原创| 久久久久久久久久久久久9999| 久久免费少妇高潮久久精品99| 蜜桃精品一区二区三区| 欧美人与性禽动交情品 | 久久精品99国产精品日本| 男女视频一区二区| 99热精品在线观看| 久久国产88| 欧美日韩高清不卡| 国产在线观看一区| 亚洲精品国产精品国自产在线 | 欧美一区二区三区四区视频| 看欧美日韩国产| 亚洲人精品午夜在线观看| 亚洲欧美激情视频| 男女激情久久| 国产精品久久久久aaaa樱花| 在线观看一区二区精品视频| 在线一区二区三区四区五区| 久久久综合激的五月天| 亚洲精品国精品久久99热一| 亚洲欧美久久久| 欧美激情一区二区三区| 国产欧美精品日韩| 亚洲片在线观看| 久久成人人人人精品欧| 亚洲人成在线观看一区二区 | 久久久高清一区二区三区| 欧美日韩国产综合一区二区| 国产在线国偷精品产拍免费yy| 一区二区欧美视频| 欧美激情国产日韩| 欧美一区二区视频网站| 欧美久久综合| 亚洲电影免费观看高清完整版| 欧美一二三区精品| 日韩视频在线观看一区二区| 久久伊人亚洲| 国产一区91| 欧美一二三区精品| 一区二区三区欧美在线观看| 欧美波霸影院| 在线看一区二区| 久久人人爽人人| 亚洲女性喷水在线观看一区| 欧美三级乱码| 一片黄亚洲嫩模| 91久久线看在观草草青青| 久久久久久久久久久久久女国产乱 | 91久久精品一区| 久久午夜国产精品| 欧美一区二区成人6969| 国产精品专区第二| 亚洲欧美日韩一区二区在线| 一区二区高清视频| 国产精品va在线| 亚洲自拍偷拍一区| 亚洲视频观看| 国产精品国码视频| 销魂美女一区二区三区视频在线| 99视频精品全部免费在线| 欧美日韩国产欧| 亚洲视频国产视频| 亚洲视频精品在线| 国产精品视频内| 久久电影一区| 久久精品1区| 亚洲国产婷婷| 亚洲人成免费|