【#文档大全网# 导语】以下是®文档大全网的小编为您整理的《Flash.as数字拼图游戏代码》,欢迎阅读!
Flash .as数字拼图游戏
Main.as文件 package { import flash.display.Sprite; import com.RectShape; import flash.events.MouseEvent; public class Main extends Sprite { private var indexshape:Array =new Array(1,2,3,4,5,6,7,8); private var ditu:Array =new Array(new Array(3),new Array(3),new Array(3)); private var pailie:Array =new Array(new Array(0,0),new Array(40,0),new Array(80,0),new Array(0,40),new Array(40,40),new Array(80,40),new Array(0,80),new Array(40,80),new Array(80,80)); //将一个120的正方形切割成9份; public function Main():void { init(); } private function init():void { var kuang:Sprite=new Sprite(); kuang.graphics.lineStyle(3,0xff000ff);//笔触为3的紫色矩形 kuang.graphics.drawRect(0,0,120,120);//画边框; kuang.graphics.endFill(); kuang.x=215; kuang.y=140; addChild(kuang); for (var i:uint=0; i<3; i++) {//如果这个位置没有小方块则值设为1; for (var t:uint=0; t<3; t++){ ditu[i][t]=1; } } for (var n:uint=1; n<=8; n++) {//制作小方块; var hao:uint=Math.floor(Math.random()*indexshape.length);//取下限值,hao是下标 var bianhao:uint=indexshape[hao]; indexshape.splice(hao,1);//删除下标; var rect:RectShape=new RectShape(bianhao); rect.mouseChildren=false;//小方块中的文本不再接收事件:对象的子容器为false var weizhi:uint=Math.floor(Math.random()*pailie.length); var dui:Array=pailie[weizhi]; pailie.splice(weizhi,1);
} }
结果:
rect.x=dui[0]; rect.y=dui[1]; rect.X=dui[0]/40; rect.Y=dui[1]/40; kuang.addChild(rect); ditu[dui[0]/40][dui[1]/40]=0; rect.addEventListener(MouseEvent.CLICK,dong); } }
private function dong(evt:MouseEvent):void { var left:uint=evt.target.X-1; var right:uint=evt.target.X+1; var up:uint=evt.target.Y-1; var down:uint=evt.target.Y+1; if (left!=4294967295 && ditu[left][evt.target.Y]==1) {//向左移动 ditu[evt.target.X][evt.target.Y]=1; ditu[left][evt.target.Y]=0; evt.target.X=left; evt.target.x-=40;//被点击的方块像素向左移40; } else if (right!=3 && ditu[right][evt.target.Y]==1) {//向右移动 ditu[evt.target.X][evt.target.Y]=1; ditu[right][evt.target.Y]=0; evt.target.X=right; evt.target.x+=40; } else if (up!=4294967295 && ditu[evt.target.X][up]==1) {//向上移动 ditu[evt.target.X][evt.target.Y]=1; ditu[evt.target.X][up]=0; evt.target.Y=up; evt.target.y-=40; } else if (down!=3&&ditu[evt.target.X][down]==1) {//向下移动 ditu[evt.target.X][evt.target.Y]=1; ditu[evt.target.Y][down]=0; evt.target.Y=down; evt.target.y+=40; } }
本文来源:https://www.wddqxz.cn/68a8acc389eb172ded63b782.html