pv3d experience

by fakestar0826
♥0 | Line 42 | Modified 2010-01-11 22:44:23 | MIT License
play

ActionScript3 source code

/**
 * Copyright fakestar0826 ( http://wonderfl.net/user/fakestar0826 )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/aLPm
 */

package {
     import flash.events.Event;
     import org.papervision3d.lights.PointLight3D;
     import org.papervision3d.materials.*;
     import org.papervision3d.objects.primitives.*;
     import org.papervision3d.cameras.*;
     import org.papervision3d.objects.*;
     import org.papervision3d.view.*;
     import flash.events.MouseEvent;
     public class Main extends BasicView {
     	
     	private var wrap:DisplayObject3D;
     	private var cam:Camera3D = new Camera3D(70,10,5000,true,false);
     	private var X:int = 0;
         public function Main():void {
            wrap = new DisplayObject3D();
            scene.addChild(wrap);
            cam.y = 500;
            
            var material:WireframeMaterial = new WireframeMaterial(0xFF0000);
            		
            for(var i:int = 0;i < 12;i++)
            {
            		var rot:int = 360 * (i / 12);
            		
            		// 球面を作成
            		var sphere:PaperPlane = new PaperPlane(material, 5);
            		
            		sphere.scaleX = 0.5;
            		sphere.scaleY = 0.5;
            		sphere.scaleZ = 0.5;
            		
            		sphere.x = 600* Math.sin(rot * Math.PI / 180);
            		sphere.z = 600* Math.cos(rot * Math.PI / 180);
            		sphere.lookAt(DisplayObject3D.ZERO);
            		
            		// 3Dシーンに追加
            		wrap.addChild(sphere);
            
            }
            // レンダリング開始
            startRendering();
            
            addEventListener(Event.ENTER_FRAME,loop);
        }
        
        private function loop(e:Event):void
        {
        		wrap.rotationY += 1;
        		camera.y = 600* Math.sin(X * Math.PI / 180);
            	camera.z = 600* Math.cos(X * Math.PI / 180);
            	X++;
        }
    }
}