Sealyu

          --- 博客已遷移至: http://www.sealyu.com/blog

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            618 隨筆 :: 87 文章 :: 225 評論 :: 0 Trackbacks
          Papervision3D實現鼠標交互的效果也比較簡單,這里用上一課中的乳牛效果來實現這樣的鼠標交互算法:

              代碼解釋

              1、這段代碼只比上一課代碼中新增了一個distance屬性,目的是確定相機在場景中的位置不至于和對象(cow乳牛)隨鼠標移動相距過大;

              2、這段代碼重新修改的函數processFrame中的代碼,目的是為了實現場景中的3D模型隨鼠標的位置變動不斷變動,從而達到鼠標交互的目的。效果最終截圖如下:

              本課最終源代碼如下:

           

           package
          {
           
           
           import PaperBase;
           import org.papervision3d.objects.DisplayObject3D;
           import org.papervision3d.objects.parsers.Collada;
           
           public class MainMouseInteraction extends PaperBase
           {
            public var cow:DisplayObject3D;
            public var distance:Number = 1000;
            
            public function MainMouseInteraction():void
            {
             init();
            }
            override protected function init3d():void
            {
             cow = new Collada("collada/cow.dae");
             cow.moveDown(100);
             cow.scale = 3;
             cow.pitch( -30);
             default_scene.addChild(cow);
            }
            override protected function processFrame():void
            {
             default_camera.y = -(((mouseY - (stage.height/2))/stage.height) * 1600);//確定相機的y范圍在800~~-800之間,即當mouseY=0時default_camera.y=800,當mouseY=stage.height時default_camera.y=-800
             default_camera.moveForward(default_camera.distanceTo(cow) - distance);//限定相機相對于cow乳牛模型不要移動到更遠的地方
             cow.rotationY = -((mouseX / stage.width) * 360);//使用mouseX來控制cow乳牛Y方向旋轉角度
            }
           }
          }

              總結:沒有過多的語句就實現了3D中的鼠標交互效果,這個效果盡管很簡單~!

              本教程可自由轉載,請注明轉載出處,謝謝~!

          posted on 2008-11-19 14:50 seal 閱讀(325) 評論(0)  編輯  收藏 所屬分類: Flex+ActionScript
          主站蜘蛛池模板: 贵阳市| 哈巴河县| 青铜峡市| 海原县| 蒲城县| 安陆市| 广德县| 宁南县| 根河市| 新野县| 汝南县| 普安县| 桐城市| 崇阳县| 金湖县| 县级市| 昭平县| 获嘉县| 泗洪县| 兖州市| 肥乡县| 鹰潭市| 博客| 仙桃市| 太谷县| 昌都县| 宜黄县| 吕梁市| 怀仁县| 山东省| 广水市| 延安市| 鸡东县| 莱芜市| 榆中县| 江源县| 漳州市| 随州市| 青岛市| 沁阳市| 顺昌县|