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

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>
            亚洲精品久久视频| 久久综合999| 葵司免费一区二区三区四区五区| 亚洲激情精品| 亚洲深夜av| 亚洲国产老妈| 亚洲欧美日韩电影| 亚洲精品女人| 亚洲欧美日韩国产一区| 亚洲欧洲日韩在线| 午夜精品视频在线观看| 一本一本久久a久久精品综合麻豆 一本一本久久a久久精品牛牛影视 | 亚洲欧美在线aaa| 亚洲国产高清一区| 亚洲在线视频观看| 一本久久知道综合久久| 欧美在线一二三| 亚洲欧美国产三级| 欧美激情影院| 免费日韩av| 欧美日韩亚洲综合| 欧美激情精品| 中国日韩欧美久久久久久久久| 国产日韩欧美三级| 久久乐国产精品| 国产精品视频大全| 亚洲国产免费看| 亚洲国产裸拍裸体视频在线观看乱了中文 | 欧美肥婆在线| 欧美日韩午夜在线| 亚洲国产精品久久91精品| 国产自产高清不卡| 亚洲欧美日韩天堂| 亚洲欧美中文日韩在线| 欧美精品一卡二卡| 亚洲国产日韩在线| 亚洲黄色影院| 久久婷婷久久一区二区三区| 久久日韩粉嫩一区二区三区| 国产一区91精品张津瑜| 亚洲欧美999| 午夜视频一区二区| 国产精品电影在线观看| 亚洲美女视频在线观看| 国内精品久久久久影院色| 午夜亚洲激情| 久久精品国产精品亚洲综合| 国产欧美精品在线播放| 亚洲永久免费视频| 欧美亚洲一级片| 欧美精品激情在线| 亚洲另类春色国产| 亚洲视频欧美视频| 国产精品嫩草影院av蜜臀| 亚洲伊人一本大道中文字幕| 亚洲自拍都市欧美小说| 国产精品视频在线观看| 午夜免费久久久久| 久久久久网址| 最新成人av网站| 欧美日韩精品| 小处雏高清一区二区三区| 久久久久久综合| 最新国产成人av网站网址麻豆| 欧美精品v日韩精品v韩国精品v| 亚洲美女区一区| 久久国产精品久久w女人spa| 在线观看免费视频综合| 欧美黄色成人网| 亚洲一本视频| 老色批av在线精品| 亚洲美女黄网| 国产欧美在线视频| 欧美激情精品久久久久| 最近中文字幕mv在线一区二区三区四区 | 夜夜爽av福利精品导航| 国产精品自拍三区| 麻豆国产精品va在线观看不卡| 亚洲精品久久久久久下一站| 亚洲欧美日韩国产一区二区三区| 国产人成一区二区三区影院| 免费观看国产成人| 夜久久久久久| 久久久欧美精品| 日韩亚洲国产欧美| 国内精品嫩模av私拍在线观看| 欧美黄免费看| 久久se精品一区二区| 亚洲精品色婷婷福利天堂| 久久国内精品视频| av成人免费在线观看| 国内不卡一区二区三区| 欧美日韩激情小视频| 久久综合狠狠综合久久综青草| 亚洲美女免费视频| 久久亚洲综合网| 亚洲男人影院| 一区二区三区久久久| 影音先锋久久资源网| 欧美激情第1页| 久久久噜噜噜久久人人看| 亚洲视频中文字幕| 亚洲国产日韩欧美在线图片| 欧美专区在线观看一区| 宅男在线国产精品| 亚洲区欧美区| 又紧又大又爽精品一区二区| 亚洲综合精品四区| 国产精品magnet| 亚洲资源在线观看| 亚洲国产日韩欧美在线图片| 国产欧美日韩激情| 国产精品丝袜久久久久久app| 欧美三级在线视频| 欧美日韩亚洲高清一区二区| 欧美日韩成人| 欧美三级在线视频| 欧美日韩亚洲一区二区三区在线观看| 欧美日韩黄色大片| 国产精品久久久久aaaa| 国产精品国内视频| 国产精品一区二区三区成人| 国产伦精品一区二区三区免费迷| 国产欧美精品日韩区二区麻豆天美| 国产拍揄自揄精品视频麻豆| 好吊妞**欧美| 亚洲精品国产精品久久清纯直播| 99re6热只有精品免费观看 | 亚洲视频网站在线观看| 亚洲一区二区三区免费在线观看| 亚洲网站在线看| 久久se精品一区二区| 免费观看成人www动漫视频| 免费日本视频一区| 欧美日韩亚洲三区| 国产亚洲欧美激情| 亚洲第一天堂av| 亚洲一卡久久| 久久久久久夜精品精品免费| 亚洲高清影视| 亚洲图片欧美午夜| 久久久久久久综合| 欧美午夜电影在线观看| 国产亚洲精品资源在线26u| 亚洲黄色免费电影| 香蕉久久夜色精品| 欧美黄色小视频| 亚洲天堂成人在线观看| 久久婷婷影院| 国产精品免费观看视频| 在线观看视频免费一区二区三区| 国产精品99久久久久久人| 久久久久久婷| 亚洲免费av电影| 快射av在线播放一区| 国产精品爽爽ⅴa在线观看| 亚洲人屁股眼子交8| 久久精品亚洲精品| 亚洲精品视频在线观看网站| 欧美在线观看视频一区二区三区 | 一区二区三区中文在线观看| 国产精品99久久99久久久二8 | 欧美成人日韩| 性伦欧美刺激片在线观看| 欧美精品一卡| 亚洲高清久久| 久久久久国色av免费观看性色| 91久久久久久国产精品| 久久超碰97人人做人人爱| 国产精品红桃| 一本久久a久久精品亚洲| 美日韩精品免费观看视频| 亚洲免费网址| 国产精品久久久久久久久搜平片| 亚洲精品视频在线播放| 免费日韩av| 久久免费国产精品| 国产欧美一二三区| 亚洲欧美春色| 在线视频精品一| 欧美日韩网站| 亚洲视频一区二区| 亚洲麻豆一区| 欧美精品亚洲一区二区在线播放| 亚洲激情在线激情| 麻豆精品在线观看| 久久久精品免费视频| 国产在线乱码一区二区三区| 午夜日韩视频| 小黄鸭精品密入口导航| 国产日韩欧美一区在线 | 欧美日本精品| 99伊人成综合| 亚洲美女视频网| 欧美小视频在线| 亚洲欧美日韩直播| 午夜精品福利在线观看| 国产精品影视天天线| 欧美影院成人| 久久国产精品99精品国产|