Forked from: tkinjo's JigLibFlash Test2 diff:20 JigLibFlash Test4 ... @author tkinjo tkinjo forked:0favorite:0lines:60license : MIT License modified : 2009-06-10 10:36:39 Embed Tweet // forked from tkinjo's JigLibFlash Test2 // forked from tkinjo's JigLibFlash Test package { /** * */ import flash.display.Sprite; import flash.events.Event; import jiglib.geometry.JSphere; import jiglib.math.JNumber3D; import jiglib.physics.RigidBody; import jiglib.plugin.papervision3d.Papervision3DPhysics; import org.papervision3d.core.proto.CameraObject3D; import org.papervision3d.core.proto.MaterialObject3D; import org.papervision3d.materials.utils.MaterialsList; import org.papervision3d.materials.WireframeMaterial; import org.papervision3d.objects.DisplayObject3D; import org.papervision3d.objects.primitives.Sphere; import org.papervision3d.scenes.Scene3D; import org.papervision3d.view.AbstractView; import org.papervision3d.view.BasicView; [SWF(width = "465", height = "465", frameRate = "60", backgroundColor = "#ffffff")] /** * ... * @author tkinjo */ public class Main extends Sprite { private const speed:Number = 10; private var view:AbstractView; private var scene:Scene3D; private var camera:CameraObject3D; private var cameraTarget:DisplayObject3D; private var physics:Papervision3DPhysics; /** * */ public function Main() { view = new BasicView( stage.stageWidth, stage.stageHeight ); addChild( view ); scene = view.scene; camera = view.camera; /** -------------------------------------------------- * カメラ設定 */ camera.x = 1000 camera.y = 1000; cameraTarget = new DisplayObject3D(); camera.lookAt( cameraTarget ); /** -------------------------------------------------- * jiglib 設定 */ physics = new Papervision3DPhysics( scene, speed ); // マテリアルの準備 var wireframeMaterial:WireframeMaterial = new WireframeMaterial( 0 ); var materials:MaterialsList = new MaterialsList(); materials.addMaterial( wireframeMaterial, "all" ); // 地面の作成 var ground:RigidBody = physics.createCube( materials, 100, 100, 0 ); ground.movable = false; // 球の作成 var sphereNum:Number = 5; for( var i:Number = 0; i < sphereNum; i++ ){ for ( var j:Number = 0; j < sphereNum; j++ ) { // 球の作成と位置の設定 var sphere:RigidBody = physics.createSphere( wireframeMaterial, 10 ); var x:Number = -( 100 * ( sphereNum - 1 ) ) / 2 + 100 * i; var z:Number = -( 100 * ( sphereNum - 1 ) ) / 2 + 100 * j; var y:Number = 100; sphere.currentState.position = new JNumber3D( x, y, z ); } } /** -------------------------------------------------- * レンダリング */ addEventListener( Event.ENTER_FRAME, enterFrameHandler ); view.startRendering(); } /** * * @param event */ private function enterFrameHandler( event:Event ):void { physics.step(); } } } Code Fullscreen Preview Fullscreen jiglibflash view position materials scene camera addEventListener addChild Event.ENTER_FRAME Event Sprite Number