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

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>
            亚洲精品在线视频| 伊人久久婷婷色综合98网| 国产精品99久久久久久www| 亚洲国产精品久久久久秋霞蜜臀| 亚洲欧美日本另类| 亚洲欧美日韩综合aⅴ视频| 亚洲欧美国产三级| 久久高清国产| 欧美第一黄色网| 亚洲美女黄色片| 亚洲一区二区三区在线看 | 小黄鸭精品密入口导航| 亚洲欧美日韩电影| 久久蜜桃资源一区二区老牛| 女人香蕉久久**毛片精品| 欧美日韩国产成人在线观看| 国产精品普通话对白| 国产欧美日韩精品在线| 伊人色综合久久天天| 一本久久综合亚洲鲁鲁五月天| 亚洲女ⅴideoshd黑人| 久久久久久久久久久久久9999| 欧美护士18xxxxhd| 中文日韩在线视频| 久久一区二区三区四区| 久久婷婷av| 91久久久精品| 午夜精品久久久久久久99水蜜桃| 久久久久国产一区二区三区四区| 欧美精品videossex性护士| 国产精品免费一区二区三区在线观看 | 麻豆精品精品国产自在97香蕉| 亚洲国产精品免费| 午夜精品电影| 欧美激情中文字幕在线| 亚洲三级网站| 久久麻豆一区二区| 国产精品不卡在线| 亚洲激情国产精品| 久久久高清一区二区三区| 91久久久久久| 久久久免费精品| 国产色爱av资源综合区| 一区二区日韩欧美| 美女国产一区| 欧美一级淫片aaaaaaa视频| 欧美精品高清视频| 亚洲第一精品夜夜躁人人躁| 欧美一区二区三区免费看| 91久久嫩草影院一区二区| 久久精品视频在线播放| 国产精品爽爽爽| 亚洲伊人观看| 亚洲韩国一区二区三区| 久久蜜桃精品| 在线精品亚洲| 欧美成人免费播放| 久久久999精品免费| 国产日韩在线一区| 欧美一区二区三区免费视| 国产精品99久久久久久有的能看 | 日韩一级在线观看| 欧美国产日韩一区二区三区| 久久久久久久国产| 伊人婷婷欧美激情| 女女同性精品视频| 免费亚洲电影在线观看| 亚洲精品国产品国语在线app| 免费观看欧美在线视频的网站| 欧美一区二区三区久久精品茉莉花| 国产精品久久久一区二区三区| 亚洲一区二区三区三| 一区二区三区 在线观看视| 欧美视频一区在线| 欧美伊人精品成人久久综合97| 亚洲欧美综合v| 伊人激情综合| 亚洲国产日韩一级| 亚洲美女av在线播放| 欧美人与禽性xxxxx杂性| 亚洲视频欧美在线| 亚洲天堂av在线免费观看| 国产伦一区二区三区色一情| 久久精品动漫| 狼狼综合久久久久综合网| 亚洲人体偷拍| 亚洲先锋成人| 在线视频欧美一区| 国产一区二区高清不卡| 久久亚洲国产精品一区二区| 欧美成人午夜激情在线| 亚洲欧美另类在线观看| 久久国产精品99国产| 亚洲精品一级| 午夜精品久久久久99热蜜桃导演| 在线欧美日韩| 亚洲视频免费看| 亚洲国产成人不卡| 亚洲一区不卡| 亚洲人成在线观看网站高清| 中文欧美字幕免费| 在线观看日韩| 在线综合亚洲| 亚洲激情精品| 久久精彩免费视频| 亚洲一级免费视频| 久久深夜福利| 欧美在线一区二区| 欧美精品一区二区高清在线观看| 久久精品视频在线免费观看| 欧美精品不卡| 另类成人小视频在线| 国产精品伦一区| 亚洲欧洲精品一区二区| 国色天香一区二区| 亚洲无毛电影| 一区二区高清在线| 欧美大片91| 欧美成人黑人xx视频免费观看| 国产精品美女在线观看| 亚洲精品乱码久久久久久黑人| 国产一区二区三区直播精品电影| 99re8这里有精品热视频免费 | 欧美承认网站| 美日韩丰满少妇在线观看| 国产精品国产三级国产普通话蜜臀| 欧美黄色精品| 亚洲高清二区| 久久久久久久久一区二区| 欧美在线三级| 国产美女一区二区| 亚洲综合电影一区二区三区| 在线亚洲国产精品网站| 欧美α欧美αv大片| 欧美jizz19hd性欧美| 精品不卡一区| 久久五月激情| 欧美激情在线有限公司| 亚洲人成77777在线观看网| 老色鬼久久亚洲一区二区| 免费在线视频一区| 亚洲缚视频在线观看| 亚洲精品小视频在线观看| 在线观看亚洲精品| 久久婷婷综合激情| 国产日韩在线亚洲字幕中文| 亚洲一二三区精品| 先锋资源久久| 国产色综合网| 久久久无码精品亚洲日韩按摩| 另类酷文…触手系列精品集v1小说| 国产综合自拍| 狂野欧美激情性xxxx| 亚洲黄色一区| 午夜电影亚洲| 国内自拍视频一区二区三区| 久热精品视频在线| 亚洲精品护士| 欧美一区深夜视频| 亚洲电影在线播放| 欧美日韩亚洲免费| 欧美亚洲日本一区| 欧美国产先锋| 亚洲欧美日韩在线| 欲色影视综合吧| 欧美人妖另类| 午夜在线视频一区二区区别| 老司机免费视频一区二区| 亚洲精品在线免费观看视频| 欧美视频一区二区| 久久久久久穴| 亚洲视频成人| 亚洲电影第1页| 午夜精品久久久久久久蜜桃app| 国产私拍一区| 欧美精品色一区二区三区| 亚洲欧美日韩精品| 亚洲国产你懂的| 欧美在线观看网址综合| 亚洲精品国产视频| 国产亚洲欧美激情| 欧美日韩一区精品| 久久综合成人精品亚洲另类欧美| 一区二区欧美国产| 亚洲国产福利在线| 久久久久久高潮国产精品视| 在线视频你懂得一区| 伊人伊人伊人久久| 国产网站欧美日韩免费精品在线观看| 欧美+亚洲+精品+三区| 亚洲欧美一区二区三区久久| 亚洲日本欧美天堂| 免费中文字幕日韩欧美| 先锋亚洲精品| 亚洲伊人久久综合| 亚洲乱码久久| 亚洲国产精品第一区二区| 国产日韩精品视频一区| 国产精品高潮呻吟视频| 欧美人与禽猛交乱配视频|