flash on 2015-10-10

by mutantleg
♥0 | Line 65 | Modified 2015-10-10 05:21:56 | MIT License
play

ActionScript3 source code

/**
 * Copyright mutantleg ( http://wonderfl.net/user/mutantleg )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/IJn4
 */

package {
    import flash.events.Event;
    import flash.display.Sprite;
    public class FlashTest extends Sprite {
        public function FlashTest() {
            
            var a:xObj;
            a = new xObj();
            a.cx = 230; 
            a.cy = 230;
            a.width = 128;
            
            a.vx = 4;
            a.vy = 4;
           // a.vang = 0.4;
            a.ang = Math.random()*6.28;
            
            myObj = a;
            
          stage.addEventListener(Event.ENTER_FRAME, onEnter);
        }//ctor
        
        public var myObj:xObj;
        
        public function onEnter(e:Event):void
        {
          graphics.clear();
          graphics.lineStyle(2, 0);  
          
          
          var ax:Number; var ay:Number;
          var bx:Number; var by:Number;
          
          var a:xObj;
          a = myObj;
          
          a.cx += a.vx;
          a.cy += a.vy;
          a.ang += a.vang;
          
          //a.vx *= 0.99;
          //a.vy *=0.99
          //a.vang *= 0.99;
          
          
          ax = a.cx + Math.cos(a.ang) * a.width*0.5;
          ay = a.cy + Math.sin(a.ang) * a.width*0.5;
          bx = a.cx - Math.cos(a.ang) * a.width*0.5;
          by = a.cy - Math.sin(a.ang) * a.width*0.5;
          
          graphics.drawCircle(ax,ay, 8);
          graphics.drawCircle(bx,by, 8);
          
          graphics.moveTo(ax,ay);
          graphics.lineTo(bx,by);
  
  
          var rx:Number; var ry:Number;
          var rx2:Number; var ry2:Number;
          
          rx = 64; ry = 64;
          rx2 = rx+256; ry2 = ry+256;
          graphics.drawRect(rx,ry, rx2-rx, ry2-ry);
  
  
          if (ax > rx2) { addImp(a, ax,ay, -1, 0); }
          if (ax < rx) { addImp(a, ax,ay, 1, 0);   }
          if (ay > ry2) { addImp(a, ax,ay, 0, -1); }
          if (ay < ry) { addImp(a, ax,ay, 0, 1);   }
                  
          if (bx > rx2) { addImp(a, bx,by, -1, 0); }
          if (bx < rx) { addImp(a, bx,by, 1, 0);   }
          if (by > ry2) { addImp(a, bx,by, 0, -1); }
          if (by < ry) { addImp(a, bx,by, 0, 1);   }
    
          
            
        }//onenter

        public function addImp(a:xObj, ax:Number, ay:Number,ix:Number,iy:Number):void
        {
         a.vx += ix;      a.vy += iy;     
         var ta:Number;
          ta = ((ax - a.cx) * iy) - ((ay - a.cy) * ix);
          a.vang += ta * 0.0001;
        }//addimp
        
        
        
        
    }//classend
}

internal class xObj
{
  public var cx:Number = 0;  public var cy:Number = 0;  public var ang:Number = 0;
  public var vx:Number = 0;  public var vy:Number = 0;  public var vang:Number = 0;
  
  public var width:Number = 64;
  
}//xobj