flash on 2015-12-13

by mutantleg
♥0 | Line 82 | Modified 2015-12-13 22:48:23 | 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/glQF
 */

package {
    import flash.events.Event;
    import flash.display.Sprite;
    public class FlashTest extends Sprite {
        public function FlashTest() {
            
            stage.quality = "LOW";
            
          mw = 64;          mh = 64;  
          vecGrid = new Vector.<int>(mw*mh, false);
          var num:int; var i:int;
          num=vecGrid.length;
          for(i=0;i<num;i+=1)
          { vecGrid[i] = Math.random() * 8 + 1; }
            
         stage.addEventListener(Event.ENTER_FRAME, onEnter);
        }//ctor
        
        public var mw:int = 0;
        public var mh:int = 0;
        public var cw:Number = 32;
        public var ch:Number = 32;
        
        public var vecGrid:Vector.<int>;
        
        public function onEnter(e:Event):void
        {
          var i:int; var k:int; var yt:int; var h:int;
          var ax:int; var ay:int;
          var ex:int; var ey:int;
          var mx:Number; var my:Number;

          mx = stage.mouseX; my = stage.mouseY;
          
          camx = mx*4-80; camz = my*4-80;  
            
          graphics.clear();
          graphics.lineStyle(2, 0);
          
           drawBox3(0,0,0, mw*cw, 16, mh*ch);         
           
          graphics.lineStyle(1, 0x808080);
           
           ax = 0; ay = 0;
           ax = camx/cw -3;           ay = camz/ch -3;
           if (ax<0) { ax=0; }           if (ay<0) { ay=0; }
           
           ex = ax+16+6; ey = ay+16+6;
           if (ex>mw) {ex=mw;}           if (ey>mh) {ey=mh;}
           
           for(i=ay;i<ey;i+=1)
           { yt = i*mw;
             for (k=ax;k<ex;k+=1)
             {
               h = vecGrid[yt+k];
               drawBox3(k*cw,0,i*ch, cw, h, ch);            
             }//nextk
           }//nexti 
           
        }//onenter
        
        
        
        
        
        public var camx:Number = 0;        public var camy:Number = 0;        public var camz:Number = 0; 
        public var rendw:Number = 465 * 0.5;        public var rendh:Number = 465 * 0.5; 
        public function drawLine(ax:Number, ay:Number, az:Number,
        bx:Number, by:Number, bz:Number):void
        {
           var sx:Number; var sy:Number;     
           ax -= camx; ay -= camy; az -= camz;
           bx -= camx; by -= camy; bz -= camz;
            sx = ax - az + rendw;     sy = (ax * 0.5) + (az * 0.5) - ay;
            graphics.moveTo(sx,sy);
            sx = bx - bz + rendw;     sy = (bx * 0.5) + (bz * 0.5) - by;
            graphics.lineTo(sx, sy);
        }//drawline 

        public function drawBox3(ax:Number,ay:Number,az:Number,
        aw:Number,ah:Number,ad:Number):void
        { drawBox(ax,ay,az, ax+aw,ay+ah,az+ad); }
        
        public function drawBox2(ax:Number,ay:Number,az:Number,
        rx:Number,ry:Number,rz:Number):void
        { drawBox(ax-rx,ay-ry,az-rz,ax+rx,ay+ry,az+rz); }
           
         public function drawBox(ax:Number, ay:Number, az:Number,
          bx:Number, by:Number, bz:Number):void
        {
          drawLine(ax, ay, az,   bx, ay, az);
          drawLine(ax, by, az,   bx, by, az);
          drawLine(ax, ay, bz,   bx, ay, bz);
          drawLine(ax, by, bz,   bx, by, bz);
          
          drawLine(ax, ay, az,   ax, by, az);
          drawLine(bx, ay, az,   bx, by, az);
          drawLine(ax, ay, bz,   ax, by, bz);
          drawLine(bx, ay, bz,   bx, by, bz);
          
          drawLine(ax, ay, az,   ax, ay, bz);
          drawLine(bx, ay, az,   bx, ay, bz);
          drawLine(ax, by, az,   ax, by, bz);
          drawLine(bx, by, az,   bx, by, bz);
        }//drawbox   
        
        
    }//classend
}