阳光VIP

少壮不努力,老大徒伤悲。平日弗用功,自到临期悔。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

sandy引擎学习笔记: 创建一个立方体

Posted on 2012-02-16 20:47  阳光VIP  阅读(139)  评论(0编辑  收藏  举报

问题:如何利用sandy的类库去创建一个立方体呢?

 

   首先,我们要先了解sandy类库的结构

 

 

 

   可以看到上面就官方网放出的类库表,有一些很容易理解,像sandy.events 这个和flash.event 事件都差不多,如果我们要创建一个立方体,我们使用到sandy.primitive 类包里面一个box的类,这个包主要创建一些比较简单的模型。这次我们只是需要用到box

 

 var myBox:Box = new Box( "theBox", 50, 100, 150, PrimitiveMode.TRI, 2 );

这样就是一个创建的过程。是不是很简单的呢,其实官方的文档写得不尽人意。幸运的事情,官方提供代码的训练和讲解。好废话小说。看上面的创建只是就个box类,主要是创建一些立方体和长方体的模型。后两个参数可以不用理会。

 var myBox:Box = new Box( "theBox", 50, 100, 150);

 

第一个名字,第二,第三,第四分别是长宽高。

 

 

  1. package{
  2.     import flash.display.Sprite;
  3.     import flash.events.*;
  4.     import sandy.core.Scene3D;
  5.     import sandy.core.scenegraph.*;
  6.     import sandy.primitive.*;
  7.     import sandy.core.data.*;
  8.     import sandy.materials.*;
  9.     import sandy.materials.attributes.*;
  10.     public class My3D extends Sprite
  11.     {
  12.         private var scenne:Scene3D;
  13.         private var camera:Camera3D;
  14.         private var ranY:Number=0.5;
  15.         private var box:Box;
  16.         
  17.         public function My3D()
  18.         {
  19.             camera=new Camera3D(300,300);
  20.             camera.z=-400;
  21.             var root:Group=createScene();
  22.             
  23.             scenne=new Scene3D("scene1",this,camera,root);
  24.             addEventListener(Event.ENTER_FRAME,Run);
  25.             
  26.         }
  27.         
  28.         
  29.         private function createScene():Group 
  30.         {
  31.             var g:Group=new Group();
  32.             box=new Box("box",100,100,100);
  33.             box.rotateX=30;
  34.             box.rotateY=30;
  35.             g.addChild(box);
  36.             return g;
  37.             
  38.         }
  39.         
  40.         private function Run(event:Event):void
  41.         {
  42.             scenne.render();
  43.             box.rotateX=mouseX;
  44.             box.rotateY=mouseY;
  45.             
  46.         }
  47.         
  48.     }
  49.     
  50.     
  51.     
  52.     
  53.     }

 

暂时不用看代码,首先我们了解这个创建 的过程,我们建立一个场景,一个摄影机,一个box,舞台这样。我们假设这个是对的创造过程,按照思路在场景里面摆放一台摄影机器。定位在一个位置中,注视一个位置,这个位置我们所要观察到的立方体。

最终在场景中要渲染出来才可以显示到舞台上。。

就是这样一个过程。

 

 

 

 

注意:

        import sandy.core.Scene3D;//场景的

       import sandy.core.scenegraph.*;//负责图形

       import sandy.primitive.*;//简单的模型

 

这次主要使用到sandy引擎中三个包。它的创建过程,就是像一个导演拍摄一样。创建场景,创建角色,渲染场景。

 

好就是这样,下次我们再学习摄影机,场景 和纹理贴图,还有高级的3ds模型导入。