home *** CD-ROM | disk | FTP | other *** search
/ Ice Age Fan CD 1 / CD1_Scrat.iso / flash / data / game.swf / scripts / asCode / findClearOfBitmap.as < prev    next >
Encoding:
Text File  |  2012-07-04  |  5.5 KB  |  169 lines

  1. package asCode
  2. {
  3.    import com.terry.SeededRandomNumber;
  4.    import flash.display.*;
  5.    import flash.geom.*;
  6.    import flash.utils.*;
  7.    
  8.    internal class findClearOfBitmap
  9.    {
  10.       private var _SeededRandomNumberRef:SeededRandomNumber;
  11.       
  12.       private var level:int;
  13.       
  14.       private var _tempArray:Array;
  15.       
  16.       private var myCol:ColorTransform;
  17.       
  18.       private var tx:int;
  19.       
  20.       private var ty:int;
  21.       
  22.       private var tLoc:int;
  23.       
  24.       private var blockStepping:int;
  25.       
  26.       private var returnSpacesArray:Array;
  27.       
  28.       private var cellsClearSpaceArray:Array;
  29.       
  30.       private var _gameClipClassRef:gameClipClass;
  31.       
  32.       private var renderRect:Rectangle;
  33.       
  34.       private var renderPoint:Point;
  35.       
  36.       private var bounds:Rectangle;
  37.       
  38.       private var screenWidth:Number;
  39.       
  40.       private var screenHeight:Number;
  41.       
  42.       private var scaleFactor:Number;
  43.       
  44.       private var _smallBitmapDataRef:BitmapData;
  45.       
  46.       private var _testBitmapData:BitmapData;
  47.       
  48.       private var clearSpacePlacementDivisions:int = 10;
  49.       
  50.       private var clearSpacesArray:Array;
  51.       
  52.       private var len:int;
  53.       
  54.       private var pixels:ByteArray;
  55.       
  56.       private var scaleMatrix:Matrix;
  57.       
  58.       public function findClearOfBitmap(param1:gameClipClass)
  59.       {
  60.          _SeededRandomNumberRef = new SeededRandomNumber();
  61.          _tempArray = new Array();
  62.          returnSpacesArray = new Array();
  63.          cellsClearSpaceArray = new Array();
  64.          renderRect = new Rectangle();
  65.          renderPoint = new Point();
  66.          bounds = new Rectangle();
  67.          scaleMatrix = new Matrix();
  68.          super();
  69.          _gameClipClassRef = param1;
  70.          clearSpacePlacementDivisions = _gameClipClassRef.clearSpacePlacementDivisions;
  71.          screenWidth = _gameClipClassRef.screenWidth;
  72.          screenHeight = _gameClipClassRef.screenHeight;
  73.          _testBitmapData = new BitmapData(screenWidth,screenHeight,true,0);
  74.          renderRect.width = screenWidth;
  75.          renderRect.height = screenHeight;
  76.          blockStepping = Math.floor(screenWidth / clearSpacePlacementDivisions);
  77.          myCol = new ColorTransform();
  78.          myCol.alphaOffset = 10;
  79.          myCol.alphaMultiplier = 100;
  80.          myCol.redMultiplier = 0;
  81.          myCol.blueMultiplier = 0;
  82.          myCol.greenMultiplier = 0;
  83.          myCol.redOffset = 0;
  84.          myCol.blueOffset = 0;
  85.          myCol.greenOffset = 0;
  86.       }
  87.       
  88.       public function resetForNextLevel() : void
  89.       {
  90.          level = _gameClipClassRef.level;
  91.          _SeededRandomNumberRef.seed = level * _gameClipClassRef.characterChoice;
  92.       }
  93.       
  94.       public function getClearOfBitmapData(param1:BitmapData) : Array
  95.       {
  96.          var _loc2_:BitmapData = new BitmapData(clearSpacePlacementDivisions * 4,clearSpacePlacementDivisions * 4,true,0);
  97.          scaleFactor = clearSpacePlacementDivisions / param1.width * 4;
  98.          scaleMatrix.identity();
  99.          scaleMatrix.scale(scaleFactor,scaleFactor);
  100.          _loc2_.draw(param1,scaleMatrix,myCol,null,null,true);
  101.          var _loc3_:Bitmap = new Bitmap(_loc2_);
  102.          _smallBitmapDataRef = new BitmapData(clearSpacePlacementDivisions,clearSpacePlacementDivisions,true,0);
  103.          scaleFactor = clearSpacePlacementDivisions / _loc2_.width;
  104.          scaleMatrix.identity();
  105.          scaleMatrix.scale(scaleFactor,scaleFactor);
  106.          _smallBitmapDataRef.draw(_loc3_,scaleMatrix,myCol);
  107.          bounds.x = 0;
  108.          bounds.y = 0;
  109.          bounds.width = _smallBitmapDataRef.width;
  110.          bounds.height = _smallBitmapDataRef.height;
  111.          pixels = _smallBitmapDataRef.getPixels(bounds);
  112.          len = pixels.length;
  113.          clearSpacesArray = [];
  114.          var _loc4_:int = 0;
  115.          while(_loc4_ < len)
  116.          {
  117.             if(pixels[_loc4_ + 0] < 1)
  118.             {
  119.                clearSpacesArray.push(_loc4_ / 4);
  120.             }
  121.             _loc4_ += 4;
  122.          }
  123.          return clearSpacesArray;
  124.       }
  125.       
  126.       public function generateClearData(param1:BitmapData) : void
  127.       {
  128.          var _loc4_:int = 0;
  129.          var _loc5_:int = 0;
  130.          cellsClearSpaceArray = [];
  131.          var _loc2_:int = 0;
  132.          var _loc3_:int = 0;
  133.          while(_loc3_ < 36)
  134.          {
  135.             _loc4_ = _loc2_ / 6;
  136.             _loc5_ = _loc2_ - _loc4_ * 6;
  137.             renderRect.x = _loc5_ * screenWidth;
  138.             renderRect.y = _loc4_ * screenHeight;
  139.             renderPoint.x = 0;
  140.             renderPoint.y = 0;
  141.             _testBitmapData.copyPixels(param1,renderRect,renderPoint);
  142.             cellsClearSpaceArray[_loc2_] = getClearOfBitmapData(_testBitmapData);
  143.             _loc2_++;
  144.             _loc3_++;
  145.          }
  146.       }
  147.       
  148.       public function getEmptySpaces(param1:int, param2:int) : Array
  149.       {
  150.          var _loc3_:int = 0;
  151.          returnSpacesArray = [];
  152.          _tempArray = cellsClearSpaceArray[param1].slice(0) as Array;
  153.          while(param2--)
  154.          {
  155.             _loc3_ = int(_SeededRandomNumberRef.nextIntRange(0,_tempArray.length));
  156.             tLoc = _tempArray[_loc3_];
  157.             _tempArray.splice(_loc3_,1);
  158.             ty = tLoc / clearSpacePlacementDivisions;
  159.             tx = tLoc - ty * clearSpacePlacementDivisions;
  160.             tx = tx * blockStepping + blockStepping / 2;
  161.             ty = ty * blockStepping + blockStepping / 2;
  162.             returnSpacesArray.push(tx,ty);
  163.          }
  164.          return returnSpacesArray;
  165.       }
  166.    }
  167. }
  168.  
  169.