Flash.as数字拼图游戏代码

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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;

}

}

}

}

结果:

相关文档
最新文档