今天忽然找到以前做给心爱的人的推箱子游戏,呵呵,发给大家玩玩,素材除了熊猫是自己做图画的(可能与网上某些熊猫有些相似,),其他素材都是网上搜集的.
全代码:(因为是很久以前做的,没有注释)
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; } }