notice: Flash editor updated! Join the development! Thanks to MiniBuilder


embed

FORKED
  1. // forked from cocoa's PV3D なんとなく地球と月的な・・・
  2. package
  3. {
  4.     import flash.display.Sprite;
  5.     import flash.events.Event;
  6.     
  7.     import org.papervision3d.view.Viewport3D;
  8.     import org.papervision3d.scenes.Scene3D;
  9.     import org.papervision3d.cameras.Camera3D;
  10.     import org.papervision3d.materials.WireframeMaterial;
  11.     import org.papervision3d.objects.primitives.Sphere;
  12.     import org.papervision3d.render.BasicRenderEngine;
  13.     [SWF(width = "450", height = "450", backgroundColor = "#000000", frameRate = "30")]
  14.     public class PV3DEarth extends Sprite
  15.     {
  16.         
  17.         private var viewport:Viewport3D;
  18.         private var scene:Scene3D;
  19.         private var camera:Camera3D;
  20.         private var material1:WireframeMaterial;
  21.         private var material2:WireframeMaterial;
  22.         private var earth:Sphere;
  23.         private var moon:Sphere;
  24.         private var renderer:BasicRenderEngine;
  25.         private var angle:Number;
  26.         private var speed:Number;
  27.         private var position:Number;
  28.         
  29.         public function PV3DEarth():void
  30.         {
  31.             set_3dscene();
  32.             init();
  33.         }
  34.         
  35.         private function set_3dscene():void
  36.         {
  37.             viewport = new Viewport3D(450450truefalse);
  38.             addChild(viewport);
  39.             scene = new Scene3D();
  40.             camera = new Camera3D();
  41.             renderer = new BasicRenderEngine();
  42.             camera.z = -3000;
  43.             camera.focus = 100;
  44.             camera.zoom = 6;
  45.         }
  46.         
  47.         private function init():void
  48.         {
  49.             material1 = new WireframeMaterial(0xFFCC00);
  50.             material1.smooth = true;
  51.             earth = new Sphere(material1, 4002020);
  52.             earth.rotationZ = 30;
  53.             material2 = new WireframeMaterial(0xFF0000);
  54.             material2.smooth = true;
  55.             moon = new Sphere(material2, 10086);
  56.             moon.y = 100;
  57.             speed = -.03;
  58.             angle = 0;
  59.             position = 700;
  60.             moon.z = Math.sin(angle) * position;
  61.             moon.x = Math.cos(angle) * position;
  62.             earth.addChild(moon);
  63.             scene.addChild(earth);
  64.             addEventListener(Event.ENTER_FRAME, onEnterFrame);
  65.         }
  66.         private function move_moon():void{
  67.             moon.z = Math.sin(angle) * position;
  68.             moon.x = Math.cos(angle) * position;
  69.             angle += speed;
  70.             moon.rotationY += 5;
  71.         }
  72.         private function onEnterFrame(e:Event):void
  73.         {
  74.             earth.rotationY -= 1;
  75.             move_moon();
  76.             renderer.renderScene(scene, camera, viewport);
  77.         }
  78.         
  79.     }
  80.     
  81. }
noswf
Get Adobe Flash Player