Flash.as数字拼图游戏代码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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;
}
}
}
}
结果: