Flash AS 3 熊猫推箱子源程序



 Flash AS 3 熊猫推箱子源程序

 

今天忽然找到以前做给心爱的人的推箱子游戏,呵呵,发给大家玩玩,素材除了熊猫是自己做图画的(可能与网上某些熊猫有些相似,),其他素材都是网上搜集的.

 

全代码:(因为是很久以前做的,没有注释)

 

stop();
var xiongmao1_x:int;
var xiongmao1_y:int;
var mao_b1:int;
var mao_a1:int;
var boxIndexs:Array=new Array();
var boxList:Array = new Array();
var zhongdian_x:int;
var zhongdian_y:int;
boxList[0] = new Array();
boxList[0][0] = new Array(2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2);
boxList[0][1] = new Array(2, 2, 4, 4, 4, 4, 4, 4, 4, 2, 2);
boxList[0][2] = new Array(2, 2, 4, 0, 6, 5, 5, 5, 4, 2, 2);
boxList[0][3] = new Array(2, 2, 4, 0, 0, 0, 4, 4, 4, 4, 2);
boxList[0][4] = new Array(2, 4, 4, 4, 3, 0, 0, 0, 0, 4, 2);
boxList[0][5] = new Array(2, 4, 0, 0, 0, 4, 3, 4, 0, 4, 2);
boxList[0][6] = new Array(2, 4, 0, 3, 0, 4, 0, 0, 0, 4, 2);
boxList[0][7] = new Array(2, 4, 0, 0, 0, 4, 4, 4, 4, 4, 2);
boxList[0][8] = new Array(2, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2);
boxList[0][9] = new Array(2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2);


for (var i:int=0; i<20; i++) {
	for (var j:int=0; j<15; j++) {

		var diban1:diban=new diban();
		diban1.width=35;
		diban1.height=35;
		diban1.x=i*36+0;
		diban1.y=j*36+0;
		this.addChild(diban1);

	}
}

for (var a:int=0; a<10; a++) {
	for (var b:int=0; b<12; b++) {



		var face1:int=boxList[0][a][b];
		var thisM1:yuanjian=new yuanjian();
		thisM1.gotoAndStop(face1);
		thisM1.x=b*36+72;
		thisM1.y=a*36+36;

		//var r:uint=Math.floor(Math.random()*boxList.length);
		//thisM1.cardface=boxList[r];
		//boxList.splice(r,1);
		//thisM1.gotoAndStop(thisM1.cardface+2);
		this.addChild(thisM1);
		if (boxList[0][a][b]==3) {

			boxIndexs.push(this.getChildIndex(thisM1));
			//trace(this.getChildIndex(thisM1));

		}
		if (boxList[0][a][b]==6) {
			setXiongmao(b,a);

			//var xiongmao1:xiongmao=new xiongmao();
			//
			//                        this.addChild(xiongmao1);
			//                        xiongmao1.scaleX =0.25;
			//                        xiongmao1.scaleY =0.20;
			//xiongmao1.x=b*36+72;
			//xiongmao1.y=a*36+36;
		}
		if (boxList[0][a][b]==5) {
			zhongdian_x=b;
			zhongdian_y=a;


		}
		//cardsLeft++;

	}
}
function setXiongmao(x1:int,y1:int):void {
	mao_b1=x1;
	mao_a1=y1;
	xiongmao1_x=x1*36+72;
	xiongmao1_y=y1*36+36;



}

var xiongmao1:xiongmao=new xiongmao();

this.addChild(xiongmao1);
xiongmao1.scaleX =0.25;
xiongmao1.scaleY =0.20;

xiongmao1.x=xiongmao1_x;
xiongmao1.y=xiongmao1_y;

stage.addEventListener(KeyboardEvent.KEY_UP, iskeyDown);

function iskeyDown(event:KeyboardEvent):void {

	/* 
	if(xiongmao1.hitTestObject(thisM1))
	{
	trace("hit");
	xiongmao1.x=xiongmao1_x;
	xiongmao1.y=xiongmao1_y;
	}*/
	/*else
	{*/
	switch (event.keyCode) {
		case 37 :
			//this.getChildAt(boxIndexs[0]).x-=36; 

			//trace(boxList[0][(xiongmao1.y-36)/36][(xiongmao1.x-72)/36-1]);

			if (boxList[0][(xiongmao1.y-36)/36][(xiongmao1.x-72)/36-1]==0||boxList[0][(xiongmao1.y-36)/36][(xiongmao1.x-72)/36-1]==5) {
				//如果熊猫的左边为0,或者左边为5,则左移36;




				boxList[0][(xiongmao1.y-36)/36][(xiongmao1.x-72)/36]=0;
				boxList[0][(xiongmao1.y-36)/36][(xiongmao1.x-72)/36-1]=6;
				xiongmao1.x-=36;
			} else if (boxList[0][(xiongmao1.y-36)/36][(xiongmao1.x-72)/36-2]==0&&boxList[0][(xiongmao1.y-36)/36][(xiongmao1.x-72)/36-1]==3) {
				//如果熊猫的左边为3(箱子存在),同时熊猫左边第二格为空,则熊猫左移36,箱子也左移36;

				boxList[0][(xiongmao1.y-36)/36][(xiongmao1.x-72)/36]=0;
				//boxList[0][(xiongmao1.y-36)/36+1][(xiongmao1.x-72)/36]=6;
				xiongmao1.x-=36;

				for (var boxIndex4:int=0; boxIndex4<3; boxIndex4++) {
					/*trace(xiongmao1.y);
					trace(this.getChildAt(boxIndexs[boxIndex]).y+36);*/
					/*trace(xiongmao1.x);
					trace(this.getChildAt(boxIndexs[boxIndex]).x);*/
					if (this.getChildAt(boxIndexs[boxIndex4]).x==xiongmao1.x&&this.getChildAt(boxIndexs[boxIndex4]).y==xiongmao1.y) {
						this.getChildAt(boxIndexs[boxIndex4]).x-=36;
						boxList[0][(xiongmao1.y-36)/36][(xiongmao1.x-72)/36]=6;
						boxList[0][(xiongmao1.y-36)/36][(xiongmao1.x-72)/36-1]=3;

					}
				}
			}
			break;

		case 38 :
			//trace(boxList[0][mao_a1][mao_b1]);
			if (boxList[0][(xiongmao1.y-36)/36-1][(xiongmao1.x-72)/36]==0||boxList[0][(xiongmao1.y-36)/36-1][(xiongmao1.x-72)/36]==5) {
				boxList[0][(xiongmao1.y-36)/36][(xiongmao1.x-72)/36]=0;
				boxList[0][(xiongmao1.y-36)/36-1][(xiongmao1.x-72)/36]=6;
				xiongmao1.y-=36;
			} else if (boxList[0][(xiongmao1.y-36)/36-2][(xiongmao1.x-72)/36]==0&&boxList[0][(xiongmao1.y-36)/36-1][(xiongmao1.x-72)/36]==3) {

				boxList[0][(xiongmao1.y-36)/36][(xiongmao1.x-72)/36]=0;
				//boxList[0][(xiongmao1.y-36)/36+1][(xiongmao1.x-72)/36]=6;
				xiongmao1.y-=36;

				for (var boxIndex3:int=0; boxIndex3<3; boxIndex3++) {
					/*trace(xiongmao1.y);
					trace(this.getChildAt(boxIndexs[boxIndex]).y+36);*/
					/*trace(xiongmao1.x);
					trace(this.getChildAt(boxIndexs[boxIndex]).x);*/
					if (this.getChildAt(boxIndexs[boxIndex3]).x==xiongmao1.x&&this.getChildAt(boxIndexs[boxIndex3]).y==xiongmao1.y) {
						this.getChildAt(boxIndexs[boxIndex3]).y-=36;
						boxList[0][(xiongmao1.y-36)/36][(xiongmao1.x-72)/36]=6;
						boxList[0][(xiongmao1.y-36)/36-1][(xiongmao1.x-72)/36]=3;


					}
				}
			}
			break;
		case 39 :

			//trace(boxList[0][mao_a1][mao_b1-1]);
			if (boxList[0][(xiongmao1.y-36)/36][(xiongmao1.x-72)/36+1]==0||boxList[0][(xiongmao1.y-36)/36][(xiongmao1.x-72)/36+1]==5) {

				boxList[0][(xiongmao1.y-36)/36][(xiongmao1.x-72)/36]=0;
				boxList[0][(xiongmao1.y-36)/36][(xiongmao1.x-72)/36+1]=6;
				xiongmao1.x+=36;
			} else if (boxList[0][(xiongmao1.y-36)/36][(xiongmao1.x-72)/36+2]==0&&boxList[0][(xiongmao1.y-36)/36][(xiongmao1.x-72)/36+1]==3) {

				boxList[0][(xiongmao1.y-36)/36][(xiongmao1.x-72)/36]=0;
				//boxList[0][(xiongmao1.y-36)/36+1][(xiongmao1.x-72)/36]=6;
				xiongmao1.x+=36;

				for (var boxIndex:int=0; boxIndex<3; boxIndex++) {
					/*trace(xiongmao1.y);
					trace(this.getChildAt(boxIndexs[boxIndex]).y+36);*/
					/*trace(xiongmao1.x);
					trace(this.getChildAt(boxIndexs[boxIndex]).x);*/
					if (this.getChildAt(boxIndexs[boxIndex]).x==xiongmao1.x&&this.getChildAt(boxIndexs[boxIndex]).y==xiongmao1.y) {
						this.getChildAt(boxIndexs[boxIndex]).x+=36;
						boxList[0][(xiongmao1.y-36)/36][(xiongmao1.x-72)/36]=6;
						boxList[0][(xiongmao1.y-36)/36][(xiongmao1.x-72)/36+1]=3;

					}
				}
			} else if (boxList[0][(xiongmao1.y-36)/36][(xiongmao1.x-72)/36+2]==5&&boxList[0][(xiongmao1.y-36)/36][(xiongmao1.x-72)/36+1]==3) {

				boxList[0][(xiongmao1.y-36)/36][(xiongmao1.x-72)/36]=0;
				//boxList[0][(xiongmao1.y-36)/36+1][(xiongmao1.x-72)/36]=6;
				xiongmao1.x+=36;

				for (var boxIndex1_2:int=0; boxIndex1_2<3; boxIndex1_2++) {
					/*trace(xiongmao1.y);
					trace(this.getChildAt(boxIndexs[boxIndex]).y+36);*/
					/*trace(xiongmao1.x);
					trace(this.getChildAt(boxIndexs[boxIndex]).x);*/
					if (this.getChildAt(boxIndexs[boxIndex1_2]).x==xiongmao1.x&&this.getChildAt(boxIndexs[boxIndex1_2]).y==xiongmao1.y) {
						this.getChildAt(boxIndexs[boxIndex1_2]).x+=36;
						boxList[0][(xiongmao1.y-36)/36][(xiongmao1.x-72)/36]=6;
						boxList[0][(xiongmao1.y-36)/36][(xiongmao1.x-72)/36+1]=3;

					}
				}
			}
			if (boxList[0][2][5]==3&&boxList[0][2][6]==3&&boxList[0][2][7]==3) {
				this.gotoAndStop(2);
			}
			//trace(zhongdian_x);
			//trace(zhongdian_y);
			break;
		case 40 :
			//trace(boxList[0][mao_a1][mao_b1-1]);



			if (boxList[0][(xiongmao1.y-36)/36+1][(xiongmao1.x-72)/36]==0||boxList[0][(xiongmao1.y-36)/36+1][(xiongmao1.x-72)/36]==5) {
				boxList[0][(xiongmao1.y-36)/36][(xiongmao1.x-72)/36]=0;
				boxList[0][(xiongmao1.y-36)/36+1][(xiongmao1.x-72)/36]=6;
				xiongmao1.y+=36;
			} else if (boxList[0][(xiongmao1.y-36)/36+2][(xiongmao1.x-72)/36]==0&&boxList[0][(xiongmao1.y-36)/36+1][(xiongmao1.x-72)/36]==3) {

				boxList[0][(xiongmao1.y-36)/36][(xiongmao1.x-72)/36]=0;
				//boxList[0][(xiongmao1.y-36)/36+1][(xiongmao1.x-72)/36]=6;
				xiongmao1.y+=36;

				for (var boxIndex2:int=0; boxIndex2<3; boxIndex2++) {
					/*trace(xiongmao1.y);
					trace(this.getChildAt(boxIndexs[boxIndex]).y+36);*/
					/*trace(xiongmao1.x);
					trace(this.getChildAt(boxIndexs[boxIndex]).x);*/
					if (this.getChildAt(boxIndexs[boxIndex2]).x==xiongmao1.x&&this.getChildAt(boxIndexs[boxIndex2]).y==xiongmao1.y) {
						this.getChildAt(boxIndexs[boxIndex2]).y+=36;
						boxList[0][(xiongmao1.y-36)/36][(xiongmao1.x-72)/36]=6;
						boxList[0][(xiongmao1.y-36)/36+1][(xiongmao1.x-72)/36]=3;

					}
				}
			}
			break;
	}
}

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值