flash on 2016-9-29

by mutantleg
♥0 | Line 82 | Modified 2016-09-29 08:39:21 | 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/8vYa
 */

package {
    import flash.events.Event;
    import flash.display.Sprite;
    public class FlashTest extends Sprite {
        public function FlashTest() {
            
            mw = 8;
            mh = 8;
            vecGrid = new Vector.<int>(mw*mh, false);
            var i:int; var num:int;
            num = vecGrid.length;
            for(i=0;i<num;i+=1)
            { vecGrid[i] = Math.random()*3-2; }
            
            stage.addEventListener(Event.ENTER_FRAME, onEnter);
        }//ctor
        
        public function onEnter(e:Event):void
        {
            graphics.clear();
            graphics.lineStyle(2, 0);
            
            camy = 150;
            
          //  drawBox2(0,0,0, 256,-16,256)
            
            var i:int; var k:int; var yt:int;
            var t:int; var ht:int;
            for(i=0;i<mh;i+=1)
            {
             yt = i * mw;
             for(k=0;k<mw;k+=1)
             {
                t = vecGrid[yt+k];
                drawBox2(k*cw, t*ch, i*cd, cw,1,cd);
                //drawLine(k*cw, t*ch, i*cd, k*cw+cw, t*ch, i*cd+cd);
                
                ht =getTile(k+1,i);
                if (t!=ht)
                { drawBox2(k*cw+cw,t*ch, i*cd,  2, (ht-t)*ch, cd);  }

                ht =getTile(k, i+1);
                if (t!=ht)
                { drawBox2(k*cw,t*ch, i*cd+cd,  cw, (ht-t)*ch, 2);  }
                
             }//nextk
            }//nexti
            
        }//onenter
        
        public var mw:int = 0;
        public var mh:int = 0;
        public var vecGrid:Vector.<int>;
        public var cw:Number = 32;
        public var ch:Number = 7;
        public var cd:Number = 32;

        public function getTile(ax:int, ay:int):int
        { if (ax<0||ax>=mw||ay<0||ay>=mh){return 0;} return vecGrid[ax+(ay*mw)];  }
        
        
         
        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,
        rx:Number,ry:Number,rz:Number):void
        { drawBox(ax-rx,ay-ry,az-rz,ax+rx,ay+ry,az+rz); }

        public function drawBox2(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 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
}