import caurina.transitions.*; import org.papervision3d.scenes.*; import org.papervision3d.cameras.*; import org.papervision3d.objects.*; import org.papervision3d.objects.special.*; import org.papervision3d.objects.primitives.*; import org.papervision3d.materials.*; import org.papervision3d.render.*; import org.papervision3d.view.*; import org.papervision3d.events.*; import org.papervision3d.core.utils.*; //初始化配置 var viewport:Viewport3D = new Viewport3D(400, 400, true, true);
addChild(viewport);
viewport.buttonMode = true; var renderer:BasicRenderEngine = new BasicRenderEngine(); var scene:Scene3D = new Scene3D(); varcamera:Camera3D = new Camera3D(); camera.zoom = 100; /// var pa:Array = newArray(); for(var i:uint=0; i<10; i++){ for(var j:uint=0; j<10; j++){ var cm:BitmapAssetMaterial = new BitmapAssetMaterial("air");
cm.oneSide = false; var p:Plane = new Plane(cm, 50, 50);
p.x = j * 50-25-200;
p.y = i * 50 - 25-200;
scene.addChild(p);
pa.push({pl:p, rotY:Math.random() * 360, rotZ:Math.random() * 360, z:Math.random() * 30000});
p.rotationY = pa[i].rotY;
p.rotationZ = pa[i].rotZ;
p.z = pa[i].z; } } //运行
addEventListener(Event.ENTER_FRAME,enterFrameFunc); function enterFrameFunc(e:Event):void{ for(var i:uint; i<pa.length; i++){ if(checkDist(pa[i].pl)){
Tweener.addTween(pa[i].pl, {rotationY:0, rotationZ:0, z:0, time:0.3}); }else{
Tweener.addTween(pa[i].pl, {rotationY:pa[i].rotY, rotationZ:pa[i].rotZ, z:pa[i].z, time:3}); } }
renderer.renderScene(scene, camera, viewport); }
function checkDist(p:Plane):Boolean{ var p1:Point = new Point(p.x, p.y); var p2:Point = new Point(stage.mouseX-200, -stage.mouseY+200); if(Point.distance(p1, p2) > 150){ returntrue; }else{ returnfalse; }
Recent Comments