当前位置: 首页 > 图文教程 > Flash动画 > Flash动画制作 > 连连看小游戏地图数据简单生成的AS代码

Flash动画制作
Flash教程:纯AS编写蝌蚪摆尾动画效果
Flash鼠绘新手入门第一课:认识鼠绘
Flash教程:打造月夜下飞翔的蝙蝠动画
Flash教程:制作可爱吹泡泡动画效果
Flash教程:打造仿奥运开幕式卷轴动画效果
Flash基础教程:制作鼠标跟随星星动画
Flash教程:制作淡雅动态网页菜单:蜻蜓飞飞动画效果
Flash鼠绘教程:绘制写真苹果的方法
Flash新手入门教程:AS2代码制作鼠标跟随龙舟效果
Flash鼠绘教程:绘制清新可口的芒果
Flash鼠绘教程:教你绘制一盘逼真的水仙花
Flash鼠绘教程:临摹徐悲鸿的骏马图
Flash鼠绘教程:绘制香甜可口的香瓜
Flash新手入门教程:鼠标跟随漂亮光圈特效
Flash新手入门教程:打造鱼缸中游动的鱼动画效果
Flash新手入门教程:AS代码制作五彩缤纷旋转效果
Flash鼠绘教程:打造唯美渔舟唱晚效果
Flash教程:打造鼠标跟随羽毛扇动画效果
Flash新手入门教程:AS代码实现鼠标跟随文字特效
Flash新手入门教程:AS代码实现神奇叠层效果

Flash动画制作 中的 连连看小游戏地图数据简单生成的AS代码


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-04   浏览: 93 ::
收藏到网摘: n/a

比如连连看的数据生成。

比较简单,这里不包括判断是否一定有解的部分,只是一个随意生成地图(给定行,列,每种图片的生成个数),没有思路的可以参考一下,高手也可以指正。

//生成地图的类
package src.ww.llk.map
{
    import mx.collections.ArrayCollection;
   
    public class MakeMap
    {
        private var mapParam:MapParam = null;
        private var types:ArrayCollection = null;
//保证取得的数据不被重取
        private var flags:ArrayCollection = null;
        public function MakeMap(param:MapParam):void {
            mapParam = param;
            initData();
        }
        
        // 初始化必要的数据
        private function initData():void {
            types = new ArrayCollection();
            var typeNum:int = Math.floor(mapParam.cols*mapParam.rows/mapParam.numberPerType);
            for(var i:int=1;i<=typeNum;i++) {
                for (var j:int=0;j<mapParam.numberPerType;j++) {
                    types.addItem(i);
                }
               
            }
            
            
            var yushu:int = mapParam.cols*mapParam.rows - typeNum*mapParam.numberPerType;
            for (var yI:int = 0; yI<yushu;yI++) {
                types.addItem(1);
            }
        }
        
//随机生成地图
        public function make():Array {
            flags = new ArrayCollection();
            for(var i:int=0;i<types.length;i++){
                flags.addItem(i);
            }
            var mapData:Array = new Array();
            var rowData:Array = null;
            var col:int = 0;
            
            rowData = new Array();
            rowData.push(0);
            for(col = 0;col<mapParam.cols;col++){
                rowData.push(0);
            }
            rowData.push(0);
            mapData.push(rowData);
            for(var row:int = 0;row<mapParam.rows;row++){
                rowData = new Array();
                rowData.push(0);
                for(col = 0;col<mapParam.cols;col++){
                    rowData.push(getType());
                }
                rowData.push(0);
                mapData.push(rowData);
            }
            rowData = new Array();
            rowData.push(0);
            for(col = 0;col<mapParam.cols;col++){
                rowData.push(0);
            }
            rowData.push(0);
            mapData.push(rowData);
            return mapData;
        }
        
        // 随机取得单个数据
        private function getType():int {
            var ran:int=-1;
            var ret:int = 0;
            ran = randomIndex();
            var index:int = int(flags.getItemAt(ran));
            flags.removeItemAt(ran);
            ret = int(types.getItemAt(index));
            return ret;
        }
        
        private function randomIndex():int {
            return Math.random() * (flags.length - 1);
        }
    }
}

参数类,就是一个bean,
package src.ww.llk.map
{
    public class MapParam
    {
        public var rows:Number=0;
        public var cols:Number=0;
        public var numberPerType:int=4;
    }
}

测试类:
            public function test():void {
                var param:MapParam = new MapParam();
                param.rows = 6;
                param.cols = 6;
                param.numberPerType = 4;
                var maker:MakeMap = new MakeMap(param);
                var map:Array = maker.make();
                for each(var rowData:Array in map) {
                    var rowStr:String = "";
                    for each(var cell:int in rowData) {
                        rowStr += cell + " ";
                    }
                    trace(rowStr);
                }
            }
运行结果:
0 0 0 0 0 0 0 0
0 3 3 1 1 7 6 0
0 6 8 9 7 9 5 0
0 2 4 4 4 1 7 0
0 5 8 4 9 5 8 0
0 2 6 2 3 1 7 0
0 6 2 5 3 8 9 0
0 0 0 0 0 0 0 0