package
{
 
 import alternativa.engine3d.containers.ConflictContainer;
 import alternativa.engine3d.core.Camera3D;
 import alternativa.engine3d.core.View;
 import alternativa.engine3d.lights.DirectionalLight;
 import alternativa.engine3d.materials.FillMaterial;
 import alternativa.engine3d.materials.FlatShadingMaterial;
 import alternativa.engine3d.primitives.Box;
 import alternativa.engine3d.primitives.GeoSphere;
 
 import flash.display.BitmapData;
 import flash.display.Sprite;
 import flash.events.Event;
 
 public class Main extends Sprite
 {
  private var _container:ConflictContainer;
  
  private var _light:DirectionalLight;
  
  private var _material:FlatShadingMaterial;
  
  private var _box:Box;
  private var _circle:GeoSphere;
  private var _camera:Camera3D;
  private var _view:View;
  
  public function Main():void
  {
   _container = new ConflictContainer();
   
   _light = new DirectionalLight(0xffffff);
   
   _light.z = -400;
   _light.lookAt(0, 0, 0);
   
   _container.addChild(_light);
   
   _material = new FlatShadingMaterial(new BitmapData(10, 10, false, 0xffffff));
   
   _box = new Box(10, 10, 10);
   _box.setMaterialToAllFaces(new FillMaterial(0xff0000, 1, 1, 0x000000));
   _container.addChild(_box);
   
   _circle = new GeoSphere(100, 8);
   _circle.calculateVerticesNormals(true, 1);
   _circle.setMaterialToAllFaces(_material);
   
   _container.addChild(_circle);
   
   _camera = new Camera3D();
   _camera.z = -1000;
   _container.addChild(_camera);
   
   _view = new View(stage.stageWidth, stage.stageHeight);
   _camera.view = _view;
   
   this.addChild(_view);
   
   addEventListener(Event.ENTER_FRAME, onEnter);
  }
  
  private var r:Number = Math.PI / 90;
  private var i:uint = 0;
  
  private function onEnter(e:Event):void
  {
   _light.x = Math.sin(r * i) * 350;
   _light.z = Math.cos(r * i) * 350;
   _light.lookAt(0, 0, 0);
   
   _box.x = Math.sin(r * i)  * 350 + (_circle.x);
   _box.z = Math.cos(r * i) * 350 + (_circle.y);
   _box.y = (_circle.y);
   
   _circle.x = ((stage.stageWidth / 2) - mouseX) * ( -1);
   _circle.y = ((stage.stageHeight / 2) - mouseY) * ( -1);
   
   i++;
   
   _camera.render();
  }
 }
}

'ActionScript3.0 > Alternativa3D_7' 카테고리의 다른 글

Alternativa7_Camera3D  (0) 2011.10.13
Alternativa7_ConflictContainer  (0) 2011.10.13
Alterrnativa7_Plane(top, bottom)  (0) 2011.10.12
Alternativa7_MouseEvent3D  (0) 2011.10.12
Alternativa7_TextureMaterial();  (0) 2011.10.12

+ Recent posts