如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
Flash俄罗斯方块源码N=20;//行数WIDTH=20;//方块边长level=0;//开始等级(下落速度)ret=newArray();//当前出现的方块nextret=newArray();//下一个出现的方块bg=newArray();//背景数组createEmptyMovieClip("panel",1048575);//所有方块都在此mc里for(i=0;i<5;i++){//初始化方块数组,2*5格式,前四行代表每个方块的4个小块的位置坐标,最后一行第一列是方块形状,第二列是方块旋转方向ret.push(newArray(2));nextret.push(newArray(2));}for(i=0;i<20;i++){//初始化背景数组,10*20格式bg.push(newArray(10));}X=Y=panel._x=panel._y=0;//换为X、Y表示functionreach(x:Number,y:Number,ret:Object){//x、y为方块位置,ret为方块形状,若方块ret下落一格碰到边界或者方块返回1vari:Number,j:Number,k:Number;for(i=0;i<N;i++){for(j=0;j<10;j++){if(bg[i][j]==219){for(k=0;k<4;k++){if(x+ret[k][0]==j&&y+ret[k][1]+1==i){return1;}}}}}return0;}functionlrnotout(lorr:Number,a:Object){//lorr==-1代表a往左边一格可行性的判断,lorr==1代表右边一格可行性的判断,lorr==0代表a的位置合理性的判断,出现不合理则返回0vari:Number;if(lorr==-1){for(i=0;i<4;i++){if(x+a[i][0]-1<0||reach(x-1,y-1,a)){return0;}}/}if(lorr==1){for(i=0;i<4;i++){if(x+a[i][0]+1>9||reach(x-1,y+1,a)){return0;}}}if(lorr==0){for(i=0;i<4;i++){if(x+a[i][0]<0||x+a[i][0]>9){return0;}}}return1;}functionrv(a:Object,v:Object){//方块赋值,将a方块赋值到ret方块vari:Number;for(i=0;i<5;i++){v[i][0]=a[i][0],v[i][1]=a[i][1];}}functionrotate(v){//根据方块ret最后一行(分别是形状指示变量和旋转方向变量)为ret的前四行赋以具体形状值switch(v[4][0]){case0://方形a=[[1,0],[2,0],[1,1],[2,1],[0,0]];rv(a,v);return;case1://长形switch(v[4][1]){case1:a=[[0,0],[1,0],[2,0],[3,0],[1,0]];if(lrnotout(0,a)&&!reach(x,y-1,a)){rv(a,v);}return;case0:a=[[1,0],[1,1],[1,2],[1,3],[1,1]];if(lrnotout(0,a)&&!reach(x,y-1,a)){rv(a,v);}return;}case2://Z形switch(v[4][1]){case1:a=[[0,1],[1,1],[1,2],[2,2],[2,0]];if(lrnotout(0,a)&&!reach(x,y-1,a)){rv(a,v);}return;case0:a=[[2,0],[1,1],[2,1],[1,2],[2,1]];if(lrnotout(0,a)&&!reach(x,y-1,a)){rv(a,v);}return;}case3://反Z形switch(v[4][1]){case1:a=[[1,1],[2,1],[0,2],[1,2],[3,0]];if(lrnotout(0,a)&&!reach(x,y-1,a)){rv(a,v);}return;case0:a=[[1,0],[1,1],[2,1],[2,2],[3,1]];if(lrnotout(0,a)&&!reach(x,y-1,a)){rv(a,v);}return;}case4://T形switch(v[4][1]){case3:a=[[1,0],[0,1],[1,1],[2,1],[4,0]];if(lrnotout(0,a)&&!reach(x,y-1,a)){rv(a,v);}return;case0:a