home *** CD-ROM | disk | FTP | other *** search
- package asCode
- {
- import com.terry.SeededRandomNumber;
- import flash.display.*;
- import flash.geom.*;
- import flash.utils.*;
-
- internal class findClearOfBitmap
- {
- private var _SeededRandomNumberRef:SeededRandomNumber;
-
- private var level:int;
-
- private var _tempArray:Array;
-
- private var myCol:ColorTransform;
-
- private var tx:int;
-
- private var ty:int;
-
- private var tLoc:int;
-
- private var blockStepping:int;
-
- private var returnSpacesArray:Array;
-
- private var cellsClearSpaceArray:Array;
-
- private var _gameClipClassRef:gameClipClass;
-
- private var renderRect:Rectangle;
-
- private var renderPoint:Point;
-
- private var bounds:Rectangle;
-
- private var screenWidth:Number;
-
- private var screenHeight:Number;
-
- private var scaleFactor:Number;
-
- private var _smallBitmapDataRef:BitmapData;
-
- private var _testBitmapData:BitmapData;
-
- private var clearSpacePlacementDivisions:int = 10;
-
- private var clearSpacesArray:Array;
-
- private var len:int;
-
- private var pixels:ByteArray;
-
- private var scaleMatrix:Matrix;
-
- public function findClearOfBitmap(param1:gameClipClass)
- {
- _SeededRandomNumberRef = new SeededRandomNumber();
- _tempArray = new Array();
- returnSpacesArray = new Array();
- cellsClearSpaceArray = new Array();
- renderRect = new Rectangle();
- renderPoint = new Point();
- bounds = new Rectangle();
- scaleMatrix = new Matrix();
- super();
- _gameClipClassRef = param1;
- clearSpacePlacementDivisions = _gameClipClassRef.clearSpacePlacementDivisions;
- screenWidth = _gameClipClassRef.screenWidth;
- screenHeight = _gameClipClassRef.screenHeight;
- _testBitmapData = new BitmapData(screenWidth,screenHeight,true,0);
- renderRect.width = screenWidth;
- renderRect.height = screenHeight;
- blockStepping = Math.floor(screenWidth / clearSpacePlacementDivisions);
- myCol = new ColorTransform();
- myCol.alphaOffset = 10;
- myCol.alphaMultiplier = 100;
- myCol.redMultiplier = 0;
- myCol.blueMultiplier = 0;
- myCol.greenMultiplier = 0;
- myCol.redOffset = 0;
- myCol.blueOffset = 0;
- myCol.greenOffset = 0;
- }
-
- public function resetForNextLevel() : void
- {
- level = _gameClipClassRef.level;
- _SeededRandomNumberRef.seed = level * _gameClipClassRef.characterChoice;
- }
-
- public function getClearOfBitmapData(param1:BitmapData) : Array
- {
- var _loc2_:BitmapData = new BitmapData(clearSpacePlacementDivisions * 4,clearSpacePlacementDivisions * 4,true,0);
- scaleFactor = clearSpacePlacementDivisions / param1.width * 4;
- scaleMatrix.identity();
- scaleMatrix.scale(scaleFactor,scaleFactor);
- _loc2_.draw(param1,scaleMatrix,myCol,null,null,true);
- var _loc3_:Bitmap = new Bitmap(_loc2_);
- _smallBitmapDataRef = new BitmapData(clearSpacePlacementDivisions,clearSpacePlacementDivisions,true,0);
- scaleFactor = clearSpacePlacementDivisions / _loc2_.width;
- scaleMatrix.identity();
- scaleMatrix.scale(scaleFactor,scaleFactor);
- _smallBitmapDataRef.draw(_loc3_,scaleMatrix,myCol);
- bounds.x = 0;
- bounds.y = 0;
- bounds.width = _smallBitmapDataRef.width;
- bounds.height = _smallBitmapDataRef.height;
- pixels = _smallBitmapDataRef.getPixels(bounds);
- len = pixels.length;
- clearSpacesArray = [];
- var _loc4_:int = 0;
- while(_loc4_ < len)
- {
- if(pixels[_loc4_ + 0] < 1)
- {
- clearSpacesArray.push(_loc4_ / 4);
- }
- _loc4_ += 4;
- }
- return clearSpacesArray;
- }
-
- public function generateClearData(param1:BitmapData) : void
- {
- var _loc4_:int = 0;
- var _loc5_:int = 0;
- cellsClearSpaceArray = [];
- var _loc2_:int = 0;
- var _loc3_:int = 0;
- while(_loc3_ < 36)
- {
- _loc4_ = _loc2_ / 6;
- _loc5_ = _loc2_ - _loc4_ * 6;
- renderRect.x = _loc5_ * screenWidth;
- renderRect.y = _loc4_ * screenHeight;
- renderPoint.x = 0;
- renderPoint.y = 0;
- _testBitmapData.copyPixels(param1,renderRect,renderPoint);
- cellsClearSpaceArray[_loc2_] = getClearOfBitmapData(_testBitmapData);
- _loc2_++;
- _loc3_++;
- }
- }
-
- public function getEmptySpaces(param1:int, param2:int) : Array
- {
- var _loc3_:int = 0;
- returnSpacesArray = [];
- _tempArray = cellsClearSpaceArray[param1].slice(0) as Array;
- while(param2--)
- {
- _loc3_ = int(_SeededRandomNumberRef.nextIntRange(0,_tempArray.length));
- tLoc = _tempArray[_loc3_];
- _tempArray.splice(_loc3_,1);
- ty = tLoc / clearSpacePlacementDivisions;
- tx = tLoc - ty * clearSpacePlacementDivisions;
- tx = tx * blockStepping + blockStepping / 2;
- ty = ty * blockStepping + blockStepping / 2;
- returnSpacesArray.push(tx,ty);
- }
- return returnSpacesArray;
- }
- }
- }
-
-