利用Flash的AS2.0代码制作一百多行的拼图游戏
作者 佚名技术
来源 服务器技术
浏览
发布时间 2012-07-08
先看效果: 将图片分割成一块块的,转换成电影符号,命名.用下面的函数,设置进行初使化. 初使化的格式: //随机排序数组 varobjGame:Object=newObject(); //注:每关图片的名称后缀不要一样。如果一样呢?你试试就知道了。 //6张图,每张图的名称为:mc1,mc2,mc3... ini_game(objGame,6,this,"mc"); 初使化的函数: //拼图游戏smallerbird2009-8-28mygamemylove@qq.com //源文件下载地址:http://www.mygamemylove.com/bbs/viewthread.PHP?tid=47 //原创Flash代码,尽在自娱自乐www.MyGameMyLove.com //游戏初使化信息 //obj:Object初使化的对象 //numMces:Number拼图的数量 //mc:MovieClip拼图元件所在父类 //strName:String拼图元件名称前缀如:mc1,mc2,mc3...那么:strName="mc" // functionini_game(obj:Object,numMces:Number,mc:MovieClip,strName:String):Void{ obj.numMces=numMces; obj.mcP=mc; obj.strMcName=strName; //保存拼图网格的位置 obj.arrXY=newArray(); //用于两个拼图移动 obj.arrMove=newArray(); //检测是否拼完 obj.chkOver=function(){ varisOk:Boolean=true; for(vari:Number=1;i<=this.numMces;i++){ //某一个拼图 varmcTem:MovieClip=this.mcP[this.strMcName+i]; if(mcTem.nowId!=i){ isOk=false; break; } } returnisOk; }; // obj.killMe=function(){ for(variiinthis.mcP){ this.mcP[ii].removeMovieClip(); } }; //拼图移动到目标:从mc1移动到mc2 obj.mcMoveTo=function(mc1,mc2){ mc1.swapDepths(this.mcP.getNextHighestDepth()); mc1.toX=mc2._x; mc1.toY=mc2._y; // mc1.toVx=(mc2._x-mc1._x)/5; mc1.toVy=(mc2._y-mc1._y)/5; //如果全移动到指定的位置 mc1.stopGo=function(){ if(this.obj.arrMove[0]==this){ this.obj.arrMove.splice(0,1); }else{ this.obj.arrMove.splice(1,1); } //如果完成,下一关 if(this.obj.chkOver()&&this.obj.arrMove.length==0){ //trace("ok") this.obj.killMe(); _root.nextFrame(); } this.onEnterFrame=undefined; }; //移动过程 mc1.onEnterFrame=function(){ if(this.toVx>0){ if(this._x>this.toX){ this._x=this.toX; }else{ this._x+=this.toVx; } }elseif(this.toVx<0){ if(this._x<this.toX){ this._x=this.toX; }else{ this._x+=this.toVx; } } // if(this.toVy>0){ if(this._y>this.toY){ this._y=this.toY; }else{ this._y+=this.toVy; } }elseif(this.toVy<0){ if(this._y<this.toY){ this._y=this.toY; }else{ this._y+=this.toVy; } } // if(this._x==this.toX&&this._y==this.toY){ this.stopGo(); } }; }; //初使化 obj.ini=function(){ //拼图游戏smallerbird2009-8-28mygamemylove@qq.com //原创flash代码,尽在自娱自乐www.MyGameMyLove.com this.arrXY=newArray(); for(vari:Number=1;i<=this.numMces;i++){ //某一个拼图 varmcTem:MovieClip=this.mcP[this.strMcName+i]; //保存编号,坐标x,y mcTem.txt.text=i; mcTem.id=i; mcTem.iniX=mcTem._x; mcTem.iniY=mcTem._y; mcTem.nowId=0; mcTem.obj=this; // this.arrXY.push({i:i,x:mcTem._x,y:mcTem._y}); //拼图操作 mcTem.obj=this; mcTem.onRelease=function(){ if(this.obj.arrMove.length==2){ return0; } this._alpha=50; if(this==this.obj.arrMove[0]||this==this.obj.arrMove[1]){ this._alpha=100; if(this.obj.arrMove[0]==this){ this.obj.arrMove.splice(0,1); }elseif(this.obj.arrMove[1]==this){ |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: 飞机躲避小游戏-是男人就撑100秒的制作下一篇: 活用Flash中的“连接影片”功能
关于利用Flash的AS2.0代码制作一百多行的拼图游戏的所有评论