• 网格概念


    public function Maze()

    {

    super();

    if(stage.fullScreenWidth <stage.fullScreenHeight)

    {

    stage.setOrientation(StageOrientation.ROTATED_RIGHT);

    }

     

    // support autoOrients

    stage.align = StageAlign.TOP_LEFT;

    stage.scaleMode = StageScaleMode.NO_SCALE;

    stage.displayState = StageDisplayState.FULL_SCREEN;

     

    loader = new Loader();

    loader.contentLoaderInfo.addEventListener(Event.COMPLETE,onLoad);

    loader.load(new URLRequest("black.png"));

     

     

    }

     

    private function onLoad(event:Event):void

    {

    var obj:Bitmap = Bitmap(loader.content);

    bmpd = obj.bitmapData;

    addChild(obj);

     

    rawDrid();

    }

     

    private function rawDrid():void

    {

    var gridAry:Array = [];

    var blackGridAry:Array = [];

     

    var gridSize:int = 10;

    var horizontalGridCount:int = stage.width / gridSize;

    var verticalGridCount:int = stage.height / gridSize;

    var totalCount:int = horizontalGridCount * verticalGridCount;

    trace("水平格子数量:" + horizontalGridCount + "  垂直格子数量:" + verticalGridCount);

    var i:int = 0;

    var j:int = 0;

    var startX:int = 0;

    var startY:int = 0;

    for(i;i < horizontalGridCount;i++)

    {

    startX = i * gridSize;

    j = 0;

    for(;j < verticalGridCount; j++)

    {

    startY = j * gridSize;

    var rect:Rectangle = new Rectangle(startX,startY,gridSize,gridSize);

    gridAry.push(rect);

     

    }

    }

     

    trace("格子总数:"+gridAry.length);

     

    i = 0;

    for(i;i < totalCount;i++)

    {

    var rect1:Rectangle = Rectangle(gridAry[i]);

    if(checkHaveBlackPoint(rect1))

    {

    blackGridAry.push(rect1);

    }

    }

     

    var sprite:Sprite = new Sprite();

    this.addChild(sprite);

    i = 0;

    var len:int = blackGridAry.length;

    sprite.graphics.lineStyle(1,0xff0000);

    for(i; i < len; i++)

    {

    var rect2:Rectangle = Rectangle(blackGridAry[i]);

    sprite.graphics.moveTo(rect2.x,rect2.y);

    sprite.graphics.lineTo(rect2.x + gridSize,rect2.y);

    sprite.graphics.lineTo(rect2.x + gridSize,rect2.y+gridSize);

    sprite.graphics.lineTo(rect2.x,rect2.y+gridSize);

    sprite.graphics.lineTo(rect2.x,rect2.y);

     

     

    }

    }

     

    private function checkHaveBlackPoint(rect:Rectangle):Boolean

    {

    var i:int = rect.x;

    var j:int;

    var color:uint = 0;

    var leni:int = rect.width + rect.x;

    var lenj:int;

    for(i; i < leni;i++)

    {

    j = rect.y;

    lenj = rect.y + rect.height;

    for(j;j < lenj;j++)

    {

    color = bmpd.getPixel(i,j);//0是黑色

    if(color == 0)

    {

    return true;

    }

    }

    }

    return false;

    }

  • 相关阅读:
    如何做一个按钮二个事件
    JavaScript中onmouseover时如何让鼠标指针变成一个小手状
    英语口语整理,灵活运用了,口语基本就没问题了
    javascript 传递 '' 时出错 换成 '&' ok
    一个按钮触发两个事件可以吗?
    Select中DISTINCT关键字的用法?
    使下拉框某项不可选的方法
    新打开窗口属性 a href
    调试和测试 Swing 代码
    打造专业外观九宫图
  • 原文地址:https://www.cnblogs.com/kuailezoe/p/3342525.html
Copyright © 2020-2023  润新知