spanvega

LINE_MESHBATCH

Nov 6th, 2016
220
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package
  2. {
  3.     import flash.display.Sprite;
  4.     import starling.core.Starling;
  5.  
  6.     public class LINE_MESHBATCH extends Sprite
  7.     {
  8.         public function LINE_MESHBATCH ()
  9.         {
  10.             with (stage) { frameRate = 60; color = 0x0; align = 'TL'; scaleMode = 'noScale'; }
  11.  
  12.             var starling : Starling = new Starling (Lines, stage);  // starling 2.1
  13.             starling.showStats = true;
  14.             starling.start ();
  15.         }
  16.     }
  17. }
  18.  
  19.  
  20. import flash.geom.Matrix;
  21. import starling.display.*;
  22. import starling.events.Event;
  23.  
  24. /**  @author SPANVEGA // CHRISTIAN  **/
  25.  
  26. final class Lines extends Sprite
  27. {
  28.     private var pt_1 : Quad, pt_2 : Quad,
  29.  
  30.                 line : Quad;
  31.  
  32.     private var m : Matrix = new Matrix ();
  33.  
  34.     private var batch : MeshBatch;
  35.  
  36.  
  37.     public function Lines ()
  38.     {
  39.         line = new Quad (1, 1, 0xFFFFFF);
  40.         line.alignPivot ();
  41.  
  42.         pt_1 = new Quad (4, 4, 0x850000);
  43.         pt_1.alignPivot ();
  44.  
  45.         pt_2 = new Quad (4, 4, 0x0085FF);
  46.         pt_2.alignPivot ();
  47.  
  48.         addChild (batch = new MeshBatch ());
  49.  
  50.         addEventListener (Event.ENTER_FRAME, update);
  51.     }
  52.  
  53.     private function update (e : Event) : void
  54.     {
  55.         batch.clear ();
  56.  
  57.         for (var i : int = 0; i < 1000; i++)
  58.         {
  59.  
  60.         pt_1.x = Math.random () * 465;
  61.         pt_1.y = Math.random () * 465;
  62.  
  63.         pt_2.x = Math.random () * 465;
  64.         pt_2.y = Math.random () * 465;
  65.  
  66.         var dx : Number = pt_2.x - pt_1.x,
  67.             dy : Number = pt_2.y - pt_1.y,
  68.             ds : Number = Math.sqrt (dx * dx + dy * dy);
  69.  
  70.         var a : Number, b : Number, c : Number, d : Number,
  71.             sin : Number, cos : Number, rad : Number;
  72.  
  73.         // scale
  74.         a = ds;
  75.  
  76.         // identity
  77.         b = 0;
  78.         c = 0;
  79.         d = 1;
  80.  
  81.         // rotate
  82.         rad = Math.atan2 (dy, dx);
  83.         sin = Math.sin (rad);
  84.         cos = Math.cos (rad);
  85.  
  86.         m.a  = a * cos - b * sin;
  87.         m.b  = a * sin + b * cos;
  88.         m.c  = c * cos - d * sin;
  89.         m.d  = c * sin + d * cos;
  90.  
  91.         // translate
  92.         m.tx = pt_1.x;
  93.         m.ty = pt_1.y;
  94.  
  95.         //
  96.  
  97.         line.transformationMatrix = m;
  98.  
  99.         batch.addMesh (line);
  100.  
  101.         batch.addMesh (pt_1);
  102.         batch.addMesh (pt_2);
  103.  
  104.         }
  105.     }
  106. }
Add Comment
Please, Sign In to add comment