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

Flash动画制作
28个有趣的loading的flash网站实例
Flash实例教程:跟随鼠标的炫舞线条特效
Flash CS3教程:烟雾状动画制作技巧
Flash CS4的Deco工具制作有图案的水晶球
Flash CS4的骨骼工具制作皮影动画技巧
Flash实例教程:好看的气泡动画特效
Flash AS3.0教程:好看的荷塘涟漪动画
设置TextField的插入点(尖号)的位置
24个相当漂亮的创意类Flash网站设计实例
学习ActionScript 3.0比较重要的6个好处
AS3 socket解码设计时忽略的问题
Flash实例教程:好看的星光四射动画特效
Flash实例教程:简单的鼠标翻扑克动画
Flash AS实例教程:会眨眼的美女
Flash AS制作创意的鼠标经过的网页导航
AS使用经验总结:AS的使用技巧汇总
Flash动画技巧:图形元件相关知识
连连看小游戏地图数据简单生成的AS代码
Flash实例教程:好看的跟随鼠标的旋转星星
Flash CS4教程:立体梦幻星空旋转3D地球

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-04   浏览: 51 ::
收藏到网摘: 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