- package{
- import flash.display.Sprite;
- import flash.display.LoaderInfo;
- import flash.events.Event;
- import flash.geom.Vector3D;
- import away3dlite.primitives.Plane;
- import away3dlite.primitives.Sphere;
- import away3dlite.containers.View3D;
- import away3dlite.containers.Scene3D;
- import away3dlite.cameras.Camera3D;
- import jiglib.plugin.away3dlite.Away3DLiteMesh;
- import jiglib.plugin.away3dlite.Away3DLitePhysics;
- import jiglib.physics.RigidBody;
- import jiglib.geometry.JPlane;
- import jiglib.geometry.JSphere;
- [SWF(width="760", height="480", frameRate="30", backgroundColor="0xff0000")]
- [Frame(factoryClass="Preloader")]
- public class Main extends Sprite{
- private var params:Object = new Object();
- private var view:View3D = new View3D();
- private var camera:Camera3D = new Camera3D();
- private var scene:Scene3D = new Scene3D();
- private var physics:Away3DLitePhysics;
- public function Main():void{
- if(stage) init();
- else addEventListener(Event.ADDED_TO_STAGE, init);
- }
- private function init(e:Event = null):void{
- removeEventListener(Event.ADDED_TO_STAGE, init);
- for(var i:String in LoaderInfo(root.loaderInfo).parameters)
- params[i] = LoaderInfo(root.loaderInfo).parameters[i];
- view.camera = camera;
- view.scene = scene;
- view.x = stage.stageWidth / 2;
- view.y = stage.stageHeight / 2;
- addChild(view);
- physics = new Away3DLitePhysics(scene, 1);
- var ground:RigidBody = physics.createGround(null, 1000, 1);
- var sphere:RigidBody = physics.createSphere(null, 30, 8, 8);
- sphere.y = -500;
- camera.x = 1000;
- camera.y = -1000;
- camera.z = -1000;
- camera.lookAt(new Vector3D(0, 0, 0));
- stage.addEventListener(Event.ENTER_FRAME, gameLoop);
- }
- private function gameLoop(e:Event):void{
- physics.step();
- view.render();
- }
- }
- }