※現在、「wonderfl build flash online」求人コンテンツ制作に関してのアンケートを実施中です!みなさまのお力添えを頂いて、続々とアンケート結果が集まっていますが、まだまだ募集しております。ご協力のほど、どうぞよろしくお願いいたします!

wonderfl運営事務局
→アンケートページ(※ログインしてからお答えいただけるようになっています。)

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


forked from : makc3d's Galaxy [diff(22)]

FAVORITE BY
:
stunning to do this in code i'll look into the algorithm later
:
:
:
particle3Dcosmic particles
FORKED
  1. // forked from makc3d's Galaxy (Pixels)
  2. // forked from makc3d's Galaxy
  3. // forked from はちゅね
  4. //
  5. // 静かな場所でネギを振るだけの簡単なお仕事です。初心者歓迎!
  6. // 週2日~可 
  7. // 時給650円 日払い制 有給有り
  8. package
  9. {
  10.     import flash.filters.GlowFilter;
  11.     import org.papervision3d.cameras.CameraType;
  12.     import org.papervision3d.core.geom.Pixels;
  13.     import org.papervision3d.core.geom.renderables.Pixel3D;
  14.     import org.papervision3d.objects.DisplayObject3D;
  15.     import org.papervision3d.view.layer.BitmapEffectLayer; 
  16.     import org.papervision3d.view.layer.ViewportLayer; 
  17.     import org.papervision3d.view.BasicView;
  18.     [SWF (width=465, height=465, backgroundColor=0x0, frameRate=20)]
  19.     public class Galaxy extends BasicView
  20.     {
  21.         private var pixels:Pixels;
  22.         public var miku:Hatyune;
  23.         private var v:Number;
  24.         private var neckr:Number;
  25.         public function Galaxy()
  26.         {
  27.             super(0,0,true,false,CameraType.TARGET);
  28.             camera.z = 150;
  29.             var layer:BitmapEffectLayer =
  30.                 new BitmapEffectLayer (viewport, 465465true0"clear_pre"falsetrue);
  31.             viewport.containerSprite.addLayer (layer); 
  32.             pixels = new Pixels (layer);
  33.             scene.addChild (pixels);
  34.             var stars:Array = [];
  35.             // we can use far more pixels than particles ;)
  36.             generate (stars); generate (stars); generate (stars);
  37.             generate (stars); generate (stars); generate (stars);
  38.             for each (var obj:Object in stars) {
  39.                 var p:Pixel3D = new Pixel3D(obj.c + 0x1000000 * obj.a, obj.x, obj.y, obj.z);
  40.                 pixels.addPixel3D (p);
  41.             }
  42.             startRendering();
  43.             addEventListener("enterFrame", onEnterFrame);
  44.             filters = [ new GlowFilter (0x007fff, 0.5303010) ];
  45.             miku = new Hatyune();
  46.             miku.start();
  47.             addChild(miku.body);
  48.             neckr = 0.0;
  49.             v = 0.05;
  50.             Wonderfl.capture_delay( 10 );
  51.         }
  52.         private function onEnterFrame(e:*):void {
  53.             pixels.roll (v);
  54.             miku.arm_r.rotate(Math.sin(neckr)+0.5);
  55.             miku.hair_l.rotate(Math.sin(neckr)/5);
  56.             miku.hair_r.rotate(-Math.sin(neckr)/5);
  57.             if(neckr < Math.PI){
  58.               v += v;
  59.               neckr = v;
  60.             }else{
  61.                 v -= 0.06;
  62.                 neckr = v;
  63.             }
  64.         }
  65.         private function generate (stars:Array):void {
  66.             // I wrote this code back in late '90s in TurboPascal
  67.             // By now, I have no idea how it works, and what those magic numbers are :)
  68.             var I:Number, J:Number, K:Number,
  69.             s:Number, L:Number, d:Number, R:Number,
  70.             dX:Number, dY:Number, dZ:Number,
  71.             c2:Number;
  72.             var Rm:Number = 20, A:Number = 0.3;
  73.             var clr:Array = [0x0080FF, 0x8080E4, 0xB0B0FF];
  74.             for (I = 0; I < 101; I++)
  75.             {
  76.                 A = A + 0.03;
  77.                 R = A * Rm;
  78.                 for (J = 0; J < 5 - Math.floor(I / 20); J++)
  79.                 {
  80.                     for (K = 0; K < 5; K++)
  81.                     {
  82.                         L = clr[(R > 3 * Rm * Math.random()) ? 0 : 1];
  83.                         c2 = (R > 2 * Rm * Math.random()) ? 1 : 2;
  84.                         if (A < 0.6) L = clr[2];
  85.                         s = Math.max (2, Rm - R / 3);
  86.                         dX = R * Math.cos(A + K * 2 * Math.PI / 5) +
  87.                             0.2 * ((100 - I) * Math.random() + I / 2);
  88.                         dY = R * Math.sin(A + K * 2 * Math.PI / 5) +
  89.                             0.2 * ((100 - I) * Math.random() + I / 2);
  90.                         dZ = s * (Math.random() - Math.random());
  91.                         stars.push ({ x: dX, y: dY, z: dZ, c: L, a: (255 - 120 * c2) });
  92.                     }
  93.                 }
  94.             }
  95.         }
  96.     }
  97. }
  98. // ------はちゅねを動かすだけなら、こっから下は読まなくてOK!-------
  99. import flash.display.Loader;
  100. import flash.display.Sprite;
  101. import flash.net.URLRequest;
  102. import flash.errors.IOError;
  103. import org.libspark.thread.Thread;
  104. import org.libspark.thread.EnterFrameThreadExecutor;
  105. import org.libspark.thread.utils.ParallelExecutor;
  106. import org.libspark.thread.threads.display.LoaderThread;
  107. class Hatyune extends Thread
  108. {
  109.   public var arm_r:Parts;
  110.   public var head0:Parts;
  111.   public var head1:Parts;
  112.   public var body:Parts;
  113.   public var hair_l:Parts;
  114.   public var hair_r:Parts;
  115.   public var negi:Parts;
  116.   private var hair_r_lt:LoaderThread;
  117.   private var negi_lt:LoaderThread;
  118.   private var hand_r_lt:LoaderThread;
  119.   private var body_lt:LoaderThread;
  120.   private var face_lt:LoaderThread;
  121.   private var hair_l_lt:LoaderThread;
  122.   public function Hatyune()
  123.   {
  124.     if(!Thread.isReady)
  125.       Thread.initialize(new EnterFrameThreadExecutor());
  126.     super();
  127.     body = new Parts(0,0,200,140);
  128.     head0 = new Parts(106,0,212,112);
  129.     hair_r = new Parts(0,6,77,13);
  130.     arm_r = new Parts(0,91,197,119);
  131.     negi = new Parts(0,0,118,15);
  132.     head1 = new Parts(106,0,212,112);
  133.     hair_l = new Parts(132,6,141,16);
  134.   }
  135.   override protected function run():void
  136.   {
  137.     var ParaExe:ParallelExecutor = new ParallelExecutor();
  138.     hair_l_lt = new LoaderThread(new URLRequest("http://image.blog.livedoor.jp/k_yon/imgs/1/4/14e2dce1.png"));
  139.     negi_lt = new LoaderThread(new URLRequest("http://image.blog.livedoor.jp/k_yon/imgs/4/c/4cd1ba9c.png"));
  140.     hand_r_lt = new LoaderThread(new URLRequest("http://image.blog.livedoor.jp/k_yon/imgs/b/c/bc0ba0f1.png"));
  141.     body_lt = new LoaderThread(new URLRequest("http://image.blog.livedoor.jp/k_yon/imgs/6/5/659cbeb2.png"));
  142.     face_lt = new LoaderThread(new URLRequest("http://image.blog.livedoor.jp/k_yon/imgs/c/c/cc3baf4f.png"));
  143.     hair_r_lt = new LoaderThread(new URLRequest("http://image.blog.livedoor.jp/k_yon/imgs/0/9/09def37a.png"));
  144.     ParaExe.addThread(hair_r_lt);
  145.     ParaExe.addThread(negi_lt);
  146.     ParaExe.addThread(hand_r_lt);
  147.     ParaExe.addThread(body_lt);
  148.     ParaExe.addThread(face_lt);
  149.     ParaExe.addThread(hair_l_lt);
  150.     ParaExe.start();
  151.     ParaExe.join();
  152.     next(imgLoaded);
  153.     error(IOError, errorHandler);
  154.     error(SecurityError, errorHandler);
  155.   }
  156.   private function imgLoaded():void
  157.   {
  158.     var _hair_r:Loader = hair_r_lt.loader;
  159.     _hair_r.width = 82;
  160.     _hair_r.height = 257;
  161.     hair_r.addChild(_hair_r);
  162.     head0.addChild(hair_r);
  163.     body.addChild(head0);
  164.     var _negi:Loader = negi_lt.loader;
  165.     _negi.width = 124;
  166.     _negi.height = 44;
  167.     negi.addChild(_negi);
  168.     arm_r.addChild(negi);
  169.     var _hand_r:Loader = hand_r_lt.loader;
  170.     _hand_r.width = 96;
  171.     _hand_r.height = 43;
  172.     _hand_r.x = 113;
  173.     _hand_r.y = 5;
  174.     arm_r.addChild(_hand_r);
  175.     body.addChild(arm_r);
  176.     var _body:Loader = body_lt.loader;
  177.     _body.width = 116;
  178.     _body.height = 172;
  179.     _body.x = 150;
  180.     _body.y = 93;
  181.     body.addChild(_body);
  182.     var _face:Loader = face_lt.loader;
  183.     _face.width = 114;
  184.     _face.height = 111;
  185.     _face.x = 47;
  186.     _face.y = 0;
  187.     head1.addChild(_face);
  188.     var _hair_l:Loader = hair_l_lt.loader;
  189.     _hair_l.width = 85;
  190.     _hair_l.height = 247;
  191.     hair_l.addChild(_hair_l);
  192.     head1.addChild(hair_l);
  193.     body.addChild(head1);
  194.   }
  195.   private function errorHandler(e:IOError, t:Thread):void
  196.   {
  197.     next(null);
  198.   }
  199.   protected override function finalize():void
  200.   {
  201.     body.height = 114;
  202.     body.width = 140;
  203.     body.x = 260;
  204.     body.y = 260;
  205.   }
  206. }
  207. // --------------------------------------------
  208. class Parts extends Sprite
  209. {
  210.   public var originX:Number;
  211.   public var originY:Number;
  212.   public var baseX:Number;
  213.   public var baseY:Number;
  214.   private var GShape:flash.display.Shape;
  215.   public function Parts( bx:Number, by:Number, gx:Number, gy:Number )
  216.   {
  217.     x = baseX = bx;
  218.     y = baseY = by;
  219.     originX = gx;
  220.     originY = gy;
  221.   }
  222.   public function rotate( rad:Number ):void
  223.   {
  224.     var tmpX:Number = baseX - originX;
  225.     var tmpY:Number = baseY - originY;
  226.     x = tmpX * Math.cos(rad) - tmpY * Math.sin(rad) + originX;
  227.     y = tmpY * Math.cos(rad) + tmpX * Math.sin(rad) + originY;
  228.     rotation = rad / Math.PI * 180;
  229.   }
  230.   public function showRotatePoint():void
  231.   {
  232.     GShape = new flash.display.Shape();
  233.     GShape.graphics.beginFill(0xff0000);
  234.     GShape.graphics.drawCircle(0,0,5);
  235.     GShape.graphics.endFill();
  236.     GShape.x = originX;
  237.     GShape.y = originY;
  238.     addChild(GShape);
  239.   }
  240.   public function hideRotatePoint():void
  241.   {
  242.     removeChild(GShape);
  243.   }
  244. }
noswf
  1. // forked from makc3d's Galaxy (Pixels)
  2. package
  3. {
  4.     import flash.events.Event;
  5.     import flash.filters.GlowFilter;
  6.     import sandy.core.*;
  7.     import sandy.core.data.*;
  8.     import sandy.core.scenegraph.*;
  9.     import sandy.primitive.*;
  10.     import sandy.materials.*;
  11.     import sandy.view.*;
  12.     [SWF (width=465, height=465, backgroundColor=0x0, frameRate=20)]
  13.     public class Galaxy extends BasicView
  14.     {
  15.         private var sf:StarField;
  16.         public function Galaxy()
  17.         {
  18.             super (); init (465465);
  19.             camera.z = -220;
  20.             sf = new StarField ();
  21.             rootNode.addChild (sf);
  22.             var stars:Array = [];
  23.             generate (stars); generate (stars); generate (stars);
  24.             generate (stars); generate (stars); generate (stars);
  25.             // trying to give central stars more visibility
  26.             // by placing them after other stars (works ??)
  27.             stars.reverse ();
  28.             for each (var obj:Object in stars) {
  29.                 sf.stars.push (new Vertex (obj.x, obj.y, obj.z));
  30.                 sf.starColors.push (obj.c + 0x1000000 * obj.a);
  31.             }
  32.             render ();
  33.             filters = [ new GlowFilter (0x007fff, 0.5303010) ];
  34.         }
  35.         override public function simpleRender(e:Event = null):void {
  36.             sf.pan += 2; sf.roll += 1super.simpleRender (e);
  37.         }
  38.         private function generate (stars:Array):void {
  39.             // I wrote this code back in late '90s in TurboPascal
  40.             // By now, I have no idea how it works, and what those magic numbers are :)
  41.             var I:Number, J:Number, K:Number,
  42.             s:Number, L:Number, d:Number, R:Number,
  43.             dX:Number, dY:Number, dZ:Number,
  44.             c2:Number;
  45.             var Rm:Number = 20, A:Number = 0.3;
  46.             var clr:Array = [0x0080FF, 0x8080E4, 0xB0B0FF];
  47.             for (I = 0; I < 101; I++)
  48.             {
  49.                 A = A + 0.03;
  50.                 R = A * Rm;
  51.                 for (J = 0; J < 5 - Math.floor(I / 20); J++)
  52.                 {
  53.                     for (K = 0; K < 5; K++)
  54.                     {
  55.                         L = clr[(R > 3 * Rm * Math.random()) ? 0 : 1];
  56.                         c2 = (R > 2 * Rm * Math.random()) ? 1 : 2;
  57.                         if (A < 0.6) L = clr[2];
  58.                         s = Math.max (2, Rm - R / 3);
  59.                         dX = R * Math.cos(A + K * 2 * Math.PI / 5) +
  60.                             0.2 * ((100 - I) * Math.random() + I / 2);
  61.                         dY = R * Math.sin(A + K * 2 * Math.PI / 5) +
  62.                             0.2 * ((100 - I) * Math.random() + I / 2);
  63.                         dZ = s * (Math.random() - Math.random());
  64.                         stars.push ({ x: dX, y: dY, z: dZ, c: L, a: (255 - 120 * c2) });
  65.                     }
  66.                 }
  67.             }
  68.         }
  69.     }
  70. }
noswf
Get Adobe Flash Player