Flash AS 3 熊猫推箱子源程序

2011-01-19 07:13

Flash AS 3 熊猫推箱子源程序

by

at 2011-01-18 23:13:10

original http://www.javaeye.com/topic/885098



 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;
    }
}

 

 

 



    本文附件下载:

      <li><a href="http://dl.javaeye.com/topics/download/d1f2dada-a63d-3ecb-9c09-30a2f5278c16">推箱子斯斯版.rar</a> (72.6 KB)</li>
    

      <br><br>
      作者: <a href="http://wjyjimy.javaeye.com">wjyjimy</a> 
      <br>
      声明: 本文系JavaEye网站发布的原创文章,未经作者书面许可,严禁任何网站转载本文,否则必将追究法律责任!
      <br><br>
      <span style="color:red">
        <a href="http://www.javaeye.com/topic/885098" style="color:red">已有 <strong>1</strong> 人发表回复,猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
      </span>
      <br><br><br>

JavaEye推荐