• <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>
            Cpper
            C/C++高級(jí)工程師 Android高級(jí)軟件工程師 IT集成工程師 音頻工程師 熟悉c,c++,java,c#,py,js,asp等多種語言 程序猿
            蓋莫游戲引擎2.1.1的地形小例
            代碼如下:
             1 #include <GEngine/Gaimo.hpp>
             2 
             3 using namespace std;
             4 using namespace core; 
             5 void RotateView(float angle, float x, float y, float z);
             6 //! 處理鍵盤響應(yīng)
             7 void KeyCheck(RefPtr<Input> input);
             8 RefPtr<Camera> camera;
             9 RefPtr<Text> font;
            10 char textbuf[20]="";
            11 float yrot=0.0f;
            12 float dv=0.0f;
            13 int Main()
            14 {
            15     //! 初始化引擎設(shè)備并得到設(shè)備指針
            16     RefPtr<Device> device = InitDevice("地形測(cè)試");
            17     //! 得到引擎場(chǎng)景指針
            18     RefPtr<SceneManager> scenemanager = device->GetSceneManager();
            19     //! 得到引擎資源指針
            20     RefPtr<ResourceManager> resourcemanager = device->GetResourceManager();
            21     //! 獲取圖形管理器指針
            22     RefPtr<ImageManager> imagemanager =  resourcemanager->GetImageManager();
            23     //! 得到視頻驅(qū)動(dòng)器指針
            24     RefPtr<VideoDriver> videodriver = device->GetVideoDriver();
            25     font= resourcemanager->GetTextManager()->CreateText("heiti","黑體",16);
            26 
            27     //! 得到地形
            28     RefPtr<Terrain>   terrain = scenemanager->GetTerrain();
            29     //! 載入高程圖
            30     terrain->LoadHeightMap("..\\terrain\\terrain.raw",1024,16); 
            31     //! 獲取地形圖形指針
            32     RefPtr<Image> mainimage = imagemanager->CreateObject("mainimage",    "..\\terrain\\terrain.bmp");
            33     RefPtr<Image> detailimage = imagemanager->CreateObject("detailimage","..\\terrain\\detail.bmp"); 
            34     
            35     //! 獲取紋理管理器
            36     RefPtr<TextureManager> texturemanager = resourcemanager->GetTextureManager();
            37     //! 獲取紋理指針 
            38     RefPtr<Texture> maintexture = texturemanager->CreateTexture("maintex",mainimage); 
            39     RefPtr<Texture> detailtexture = texturemanager->CreateTexture("detailtex",detailimage); 
            40     terrain->LoadTexture(maintexture,detailtexture);
            41     
            42     //! 獲取攝像機(jī)指針
            43     camera = scenemanager->GetCameraManager()->CreateCamera("camera",Vector3f(300,10,300),
            44                                                                      Vector3f(10,10,0));
            45     camera->SetViewPort(Recti(0,0,640,480));
            46     camera->SetPerspective(45.0f,640.0f/480.0f,0.1f,600.0f);
            47     
            48     device->GetVideoDriver()->EnableCulling();
            49 
            50     //! 獲取霧指針
            51     RefPtr<Fog> fog = resourcemanager->GetFog("..\\script//fog.lua","fog");
            52     fog->Render();
            53     
            54     Vector3f camera_pos,camera_view;
            55     BEGIN_LOOP(device)
            56        videodriver->SetClearBuffer(ENGINE_CLEAR_COLOR | ENGINE_CLEAR_DEPTH);
            57        camera->Render();
            58        terrain->Render();
            59        
            60        KeyCheck(device->GetInput());
            61        
            62        camera_pos = camera->GetPosition();
            63        
            64        sprintf(textbuf,"camerapos:(%f,%f,%f)",camera_pos.x,camera_pos.y,camera_pos.z);
            65        font->Render(10,15,textbuf);
            66        camera_view = camera->GetView();
            67        sprintf(textbuf,"cameraview:(%f,%f,%f)",camera_view.x,camera_view.y,camera_view.z);
            68        font->Render(10,35,textbuf);
            69        RotateView(yrot,0.0f,1.0f,0.0f);
            70        camera->MoveCamera(dv);
            71        sprintf(textbuf,"nowheight:%f",terrain->GetAveHeight(camera_pos.x,camera_pos.z));
            72        font->Render(10,55,textbuf);
            73        camera_pos = camera->GetPosition();
            74        camera->SetPosition(Vector3f(camera_pos.x,terrain->GetAveHeight(camera_pos.x,camera_pos.z)+30,camera_pos.z));
            75        //! 保持視線水平
            76        camera_view = camera->GetView();
            77        camera->SetView(Vector3f(camera_view.x,terrain->GetAveHeight(camera_pos.x,camera_pos.z)+30,camera_view.z));
            78        dv = 0;
            79     END_LOOP(device)
            80     return 0;
            81 }
            代碼看似很多
            其實(shí)很多代碼都是簡(jiǎn)單的取指針操作
            下面是貼圖


            posted on 2010-04-09 14:42 ccsdu2009 閱讀(192) 評(píng)論(0)  編輯 收藏 引用 所屬分類: Game引擎
             
            久久久久久久97| 久久综合噜噜激激的五月天| 精品久久综合1区2区3区激情| 精品熟女少妇av免费久久| 久久狠狠爱亚洲综合影院| 国产精品一区二区久久国产| 97精品伊人久久久大香线蕉| 久久99九九国产免费看小说| 中文字幕乱码人妻无码久久| 国产精品美女久久久久av爽 | 久久综合鬼色88久久精品综合自在自线噜噜| 国内精品伊人久久久久av一坑| 丰满少妇高潮惨叫久久久| 久久久久国色AV免费看图片| 亚洲国产精品无码久久一线| 亚洲成人精品久久| 伊人久久大香线蕉综合影院首页| 精品久久久久久无码专区| 久久久久亚洲AV无码专区桃色| 亚洲国产精品无码久久久秋霞2| 99久久国产主播综合精品| 亚洲国产另类久久久精品| 久久成人国产精品一区二区| 2020久久精品国产免费| 久久亚洲熟女cc98cm| 无码8090精品久久一区 | 亚洲午夜久久影院| 午夜天堂精品久久久久| 老司机午夜网站国内精品久久久久久久久| 久久99国产精品99久久| 欧美日韩久久中文字幕| 欧美国产成人久久精品| 色综合久久久久网| 久久成人影院精品777| 91精品日韩人妻无码久久不卡| 久久久九九有精品国产| 久久99国产综合精品| 久久国产色AV免费观看| 久久99精品久久久久久| 漂亮人妻被黑人久久精品| 亚洲狠狠婷婷综合久久久久|