• <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>
            流逝的時(shí)光
            總有一天我們都會(huì)離去 email: zzxhang@gmail.com
            posts - 21,comments - 111,trackbacks - 0
               續(xù)http://m.shnenglu.com/zzxhang/archive/2009/04/18/80269.html,為了展示這個(gè)封裝庫(kù)的能力,我把ogre的一些核心類跟接口注冊(cè)給腳本,用luckyScript改寫了OGRE的sample中cameraTrack跟terrain的例子,實(shí)現(xiàn)了使用luckyScript來(lái)控制OGRE的啟動(dòng)和更新,這個(gè)demo會(huì)作為L(zhǎng)uckyScript的一個(gè)sample發(fā)布。

            terrain例子的LuckyScript腳本代碼
            var g_Root;
            var g_SceneManager;
            var g_Camera;
            var g_ViewPort;
            var g_Window;
            var g_RaySceneQuery;
            var g_UpdateRay;
            var g_NegativeUnitY;
            var g_FrameListener;
            var g_Str1;
            var g_Str2;
            var g_CameraPos;

            func updateScene(
            var timeDiv)
            {
                g_CameraPos 
            = g_Camera.getPosition();
                     
                  g_UpdateRay.setOrigin(g_CameraPos);
                g_UpdateRay.setDirection(g_NegativeUnitY);
                
                g_RaySceneQuery.setRay(g_UpdateRay);
             
                
            var y = getRayIntersectionHeight(g_RaySceneQuery); 
                  
                g_CameraPos.y 
            = y;
               
                g_Camera.setPosition(g_CameraPos);
             
            }


            func createRenderWindow()
            {
                g_Str1 
            = "Ogre Render Window";
                g_Str2 
            = "";
                 
                g_Window 
            = g_Root.initialise(1,g_Str1,g_Str2);
                
            }


            func choseSceneManager()
            {
                g_Str1 
            = "TerrainSceneManager";
                g_Str2 
            = "Terrain";
                g_SceneManager 
            = g_Root.createSceneManagerByStrType(g_Str1,g_Str2);
            }


            func createCamera()
            {
                  g_Str1 
            = "PlayerCam";
                g_Camera 
            = g_SceneManager.createCamera(g_Str1);
                    
                
            var cameraPos = new Vector3(0.0,0.0,500.0);
                
            var lookAtPos = new Vector3(0.0,0.0,-300.0);
                    
                g_Camera.setPosition(cameraPos);
                  g_Camera.lookAt(lookAtPos);
                  g_Camera.setNearClipDistance(
            5.0);
                      
                  g_ViewPort 
            = g_Window.addViewport(g_Camera,0,0.0,0.0,1.0,1.0);
                  
            var colorVal = new ColourValue(0.0,0.0,0.0,1.0);
                  g_ViewPort.setBackgroundColour(colorVal);
                    
                
            var aspect = g_ViewPort.getActualWidth() / g_ViewPort.getActualHeight();
                    
                  g_Camera.setAspectRatio(aspect);
            }


            func initResourceGroup()
            {
                
            var resourceGroupManager = getResourceGroupManager();
                  resourceGroupManager.initialiseAllResourceGroups();
            }


            func createScene()
            {
                  
            var waterPlane = new Plane();

                
            // Set ambient light
                var ambientColor = new ColourValue(0.50.50.5,1.0);
                g_SceneManager.setAmbientLight(ambientColor);
                 
                
            // Create a light
                g_Str1 = "MainLight";
                
            var l = g_SceneManager.createLight(g_Str1);

                l.setPosition(
            20,80,50);

                
            var fadeColour = new ColourValue(0.930.860.76,1.0);
                setSceneFog(g_SceneManager,
            3,fadeColour,0.001,500,1000);
                
            var viewPort = g_Window.getViewport(0);
                viewPort.setBackgroundColour(fadeColour);

                g_Str1 
            = "terrain.cfg";
                g_SceneManager.setWorldGeometry(g_Str1);

                g_Camera.setFarClipDistance(
            0);

                
            // Define the required skyplane
                var plane = new Plane();
                
                
            // 5000 world units from the camera
                plane.d = 5000;
                  
                 
                
            var unitDown = new Vector3(0,-1,0);
                 
                
            // Above the camera, facing down
                plane.normal = unitDown;
                   
                
            var q = new Quaternion(-0.34860.01220.93650.0329);
                 
                
            var newPos = new Vector3(707,2500,528);
                g_Camera.setPosition(newPos);
                 
                g_Camera.setOrientation(q);
                
                
            var cameraPos = g_Camera.getPosition();
                
            var ray = new Ray(cameraPos,unitDown); 
                g_RaySceneQuery 
            = g_SceneManager.createRayQuery(ray,-1);
            }


            func createFrameListener()
            {
                g_FrameListener 
            = new FrameListener(g_Window,g_Camera);
                g_Root.addFrameListener(g_FrameListener);    
            }


            func Main()
            {
                g_Root 
            = new Root("plugins_d.cfg","ogre.cfg""Ogre.log");
             
                setupResources();   
                
                
            if(g_Root.showConfigDialog())
                
            {   
                      g_Str1 
            = new String("");
                    g_Str2 
            = new String("");
                    
            var zero = new Vector3(0,0,0);   
                    g_NegativeUnitY 
            = new Vector3(0,-1,0);
                    g_UpdateRay 
            = new Ray(zero,g_NegativeUnitY); 
                            
                      createRenderWindow();
                      
                      choseSceneManager();
                      
                      createCamera();
                      
                      initResourceGroup();
                      
                      createScene();
                      
                      createFrameListener();

                    updateScene(
            0);
                    
                    g_Root.startRendering();
                   
                }

            }

            運(yùn)行結(jié)果:
            posted on 2009-04-18 17:40 清風(fēng) 閱讀(1630) 評(píng)論(3)  編輯 收藏 引用 所屬分類: LuckyScript

            FeedBack:
            # re: LuckyScript封裝庫(kù)sample:改寫ogre例子
            2009-04-22 10:20 | 打醬油的
            # re: LuckyScript封裝庫(kù)sample:改寫ogre例子
            2009-04-26 23:14 | 向往
            zhixiong,不錯(cuò)不錯(cuò),我對(duì)腳本不熟悉,有時(shí)間跟你取經(jīng).記得回訪啊  回復(fù)  更多評(píng)論
              
            # re: LuckyScript封裝庫(kù)sample:改寫ogre例子
            2009-04-27 00:07 | 清風(fēng)
            @向往
            tingliang?你也來(lái)這開博了啊  回復(fù)  更多評(píng)論
              
            一本久久a久久精品综合夜夜| 大美女久久久久久j久久| 思思久久精品在热线热| 久久精品国产色蜜蜜麻豆| 国产精品一区二区久久国产| 日本精品久久久久中文字幕8| 美女久久久久久| 久久天天躁狠狠躁夜夜网站| 国产免费久久精品99久久| 久久精品国产AV一区二区三区 | 久久亚洲中文字幕精品一区| 色播久久人人爽人人爽人人片AV| 91精品国产综合久久精品| 久久精品成人免费国产片小草| 精品无码久久久久国产动漫3d| 国产成人综合久久综合| 亚洲伊人久久综合中文成人网| 国产V综合V亚洲欧美久久| 一本综合久久国产二区| 亚洲伊人久久大香线蕉苏妲己| 97精品伊人久久久大香线蕉| 精品国产综合区久久久久久| 77777亚洲午夜久久多喷| 色青青草原桃花久久综合| 国产精品一区二区久久精品| 热re99久久6国产精品免费| 国内精品伊人久久久影院 | 狠狠久久综合| 91久久精品国产91性色也| 亚洲国产欧美国产综合久久| 久久国产欧美日韩精品免费| 久久久久无码中| 91久久香蕉国产熟女线看| 国产99精品久久| av无码久久久久久不卡网站| 久久精品国产亚洲AV嫖农村妇女 | 久久久久亚洲AV综合波多野结衣| av无码久久久久久不卡网站| 久久99精品国产99久久| 99久久精品毛片免费播放| 久久91亚洲人成电影网站|