你好。flash as3.0小游戏,要源代码,类似于连连看,打砖块之类的。能发我吗
2048的源码!!package
{
importflash.display.Sprite;
importflash.events.*;
importflash.text.*;
importflash.geom.Point;
publicclassGameMainextendsSprite
{
privatevari:int=0;
privatevarj:int=0;
privatevark:int=0;
privatevartf:TextFormat=newTextFormat();
privatevarContainTxt:Sprite=newSprite();
privatevararrTxt:Array=newArray();
privatevararrTxtColor:Array=newArray();
privatevararrTxtValue:Array=[[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]];
privatevararrTemp:Array=newArray(5);
privatevararrValue:Array=[0,2,4,8,16,32,64,128,256,512,1024,GameMain,4096];
privatevararrColor:Array=[0xffffff,0x999999,0xff6666,0xffcc66,0xff9900,0xff6600,0xff3300,0xff0000,0xffff66,0x99ff33,0x66ff00,0xff00ff];
privatevarB_change:Boolean=false;
privatevardotest:int=0;
privatevarscore:int=0;
publicfunctionGameMain():void
{
Depth();//深度管理
new_Game();//初始化
TF1();
}
privatefunctionnew_Game():void
{
stage.addEventListener(Event.ENTER_FRAME,ValueToTxt);
Create_one();
Create_one();
stage.addEventListener(KeyboardEvent.KEY_DOWN,KEYDOWN);
}
privatefunctionKEYDOWN(ekey:KeyboardEvent):void
{
switch(ekey.keyCode)
{
case37:
for(j=0;j<=3;j++)
{
for(i=0;i<=3;i++)
{
arrTemp[i]=arrTxtValue[i][j];
}
arrTemp[4]=0;
doMove();
for(i=0;i<=3;i++)
{
arrTxtValue[i][j]=arrTemp[i];
}
}
break;
case38:
for(k=0;k<=3;k++)
{
for(j=0;j<=3;j++)
{
arrTemp[j]=arrTxtValue[k][j];
}
arrTemp[4]=0;
doMove();
for(j=0;j<=3;j++)
{
arrTxtValue[k][j]=arrTemp[j];
}
}
break;
case39:
for(j=0;j<=3;j++)
{
for(i=0;i<=3;i++)
{
arrTemp[i]=arrTxtValue[3-i][j];
}
arrTemp[4]=0;
doMove();
for(i=0;i<=3;i++)
{
arrTxtValue[3-i][j]=arrTemp[i];
}
}
break;
case40:
for(k=0;k<=3;k++)
{
for(j=0;j<=3;j++)
{
arrTemp[j]=arrTxtValue[k][3-j];
}
arrTemp[4]=0;
doMove();
for(j=0;j<=3;j++)
{
arrTxtValue[k][3-j]=arrTemp[j];
}
}
break;
default:
break;
}
}
privatefunctiondoMove():void
{
vartemp:int=0;
score++;
//02
do
{
for(i=0;i<=3;i++)
{
if(arrTemp[i]==0)
{
if(arrTemp[i]!=arrTemp[i+1])
{
arrTemp[i]=arrTemp[i+1];
arrTemp[i+1]=0;
B_change=true;
}
}
}
temp++;
}while(temp<=3);
//22
do
{
for(i=1;i<4;i++)
{
if(arrTemp[i]==arrTemp[i-1])
{
if(arrTemp[i]!=0)
{
arrTemp[i-1]=arrTemp[i]*2;
arrTemp[i]=0;
B_change=true;
}
}
}
temp++;
}while(temp<=3);
//00
do
{
for(i=0;i<4;i++)
{
if(arrTemp[i]==0)
{
arrTemp[i]=arrTemp[i+1];
arrTemp[i+1]=0;
}
}
temp++;
}while(temp<=3);
//20donothing
}
privatefunctionCreate_one():void
{
do
{
i=Math.floor(Math.random()*4);
j=Math.floor(Math.random()*4);
}while(arrTxtValue[i][j]!=0);
if(Math.random()<0.777)
{
arrTxtValue[i][j]=arrValue[1];
}
else
{
arrTxtValue[i][j]=arrValue[2];
}
}
privatefunctionValueToTxt(e:Event):void
{
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
varn:int=arrValue.indexOf(arrTxtValue[i][j]);
arrTxtColor[i][j].backgroundColor=arrColor[n];
arrTxt[i][j].text=arrTxtValue[i][j];
arrTxt[i][j].setTextFormat(tf);
}
}
//
if(B_change)
{
Create_one();
B_change=false;
}
}
privatefunctionGameOver():void
{
stage.removeEventListener(Event.ENTER_FRAME,ValueToTxt);
stage.removeEventListener(KeyboardEvent.KEY_DOWN,KEYDOWN);
}
privatefunctionTF1():void
{
tf.align="center";
tf.bold=true;
tf.size=35;
tf.font="Arial";
tf.color=0xFFFFFF;
}
privatefunctionDepth():void
{
addChild(ContainTxt);//文本框容器
varFrame:Sprite=FRAME();
addChild(Frame);//结构
FrameTxt();//文本框
}
privatefunctionFrameTxt():void
{
for(i=0;i<4;i++)
{
arrTxt[i]=newArray();
arrTxtColor[i]=newArray();
for(j=0;j<4;j++)
{
vartemptxt:TextField=newTextField();
vartemptxtColor:TextField=newTextField();
temptxt.selectable=temptxtColor.selectable=false;
temptxt.x=i*100;
temptxtColor.x=i*100;
temptxt.y=j*100+30;
temptxtColor.y=j*100;
temptxtColor.width=temptxtColor.height=100;
temptxtColor.background=true;
ContainTxt.addChild(temptxtColor);
ContainTxt.addChild(temptxt);
arrTxt[i][j]=temptxt;
arrTxtColor[i][j]=temptxtColor;
}
}
}
privatefunctionFRAME():Sprite
{
vartempframe:Sprite=newSprite();
for(i=0;i<=4;i++)
{
tempframe.graphics.moveTo(i*100,0);
tempframe.graphics.lineStyle(8,0xCCCCCC);
tempframe.graphics.lineTo(i*100,400);
}
for(j=0;j<=4;j++)
{
tempframe.graphics.moveTo(0,j*100);
tempframe.graphics.lineStyle(8,0xCCCCCC);
tempframe.graphics.lineTo(400,j*100);
}
returntempframe;
}
}
}
多重随机标签