flash on 2015-4-21

by mutantleg
♥0 | Line 56 | Modified 2015-04-21 04:30:34 | 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/bRBF
 */

package {
    import flash.events.Event;
    import flash.display.Sprite;
    public class FlashTest extends Sprite {
        public function FlashTest() {
        
          stage.addEventListener(Event.ENTER_FRAME, onEnter);  
        }//ctor
        
        
        public var cx:Number = 230;
        public var cy:Number = 230;
        public var vx:Number = 0;
        public var vy:Number = 0;
        public var rad:Number = 16;
        
        public function isWall(ax:Number, ay:Number):Boolean
        {
         if (ax < 0) { return true; }
         if (ay < 0) { return true; }
         if (ax > 465) { return true; }
         if (ay > 465) { return true; }            
         return false;
        }//iswall
        
        public function angTest(ang:Number):void
        {
            var i:int;
            var kx:Number; var ky:Number;
            var nx:Number; var ny:Number;

            nx = Math.cos(ang);
            ny = Math.sin(ang);

            graphics.moveTo(cx,cy);
            graphics.lineTo(cx+nx*rad,cy+ny*rad);

            kx =cx;ky=cy;
            
            for (i =0;i<16;i++)
            {
              kx += nx; ky += ny;
              if (isWall(kx,ky))
              {
               vx += -nx*i*0.2;
               vy += -ny*i*0.2;
               return;    
              }  
            }//nexti
            
            
        }//angtest
        
        
        public function onEnter(e:Event):void
        {
            graphics.clear();
            graphics.lineStyle(2, 0);
            
            
            graphics.drawCircle(cx,cy, rad);
            
            vy +=0.2;
            
            vx *= 0.98;
            vy *= 0.98;
            
            var w:Number;
            for (w=0;w<6.28;w+=0.2)
            { angTest(w); }
            
            cx +=vx; cy+=vy;
            
            
        }//onenter
        
        
    }//classend
}