俄罗斯方块java
else
{
//方块5向下移动遇到已使用的格子而固定的情况
int isTouch=0; //为0表示未接触,为1表示已接触.
int[][] aryDownTouchGrids;
aryDownTouchGrids=b.objDiamonds.downTouchGrids();
for(int i=0;i<aryDownTouchGrids.length;i++)
{
if(b.getAryGrids(aryDownTouchGrids[i][0]-1,aryDownTouchGrids[i][1])==1)
{
isTouch=1;
break;
}
}
if(isTouch==1) //向下移动已发生了接触.
{
int[][] rtnPosition;
rtnPosition=b.objDiamonds.diamondsPosition();
//把容器中与方块5位置相对应的格子设为已使用.
for(int i=0;i<rtnPosition.length;i++)
if((rtnPosition[i][0]!=-1)&&(rtnPosition[i][1]!=-1))
b.setAryGrids(rtnPosition[i][0],rtnPosition[i][1],1);
//对已满的行要进行消行处理.
int tmpLineNum;
tmpLineNum=b.removeRows();
objScore.addScore(tmpLineNum);
if(b.gameOverChk()==1)
System.out.println("GAME OVER!!");
if(b.gameOverChk()==1)
{
t.stop();
System.out.println("GAME OVER!!");
b.objSystemStatus.setSystemStatus(3);
}
else
{
//重新生成一个新的方块,实质是设定方块的类型,并将其位置复位.
b.objDiamonds.setSortNo(objPreDiamonds.getSortNo());
b.objDiamonds.setStatusNo(objPreDiamonds.getStatusNo());
b.objDiamonds.setAryDiamonds();
objPreDiamonds.createNew();
b.objDiamonds.setReferPoint(b.getHeightGrid(),b.getWidthGrid()/2-1);
}
}
else
{
b.objDiamonds.setReferPoint(rtnRowColNo[0]-1,rtnRowColNo[1]);
}
}
repaint();
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
b.drawGridFrame(g);
b.drawGrids(g);
objPreview.drawGridFrame(g);
objPreview.drawGrids(g,objPreDiamonds.diamondsPosition());
objScore.drawScore(g);
objCopyright.drawCopyright(g);
b.objSystemStatus.drawSystemStatus(g);
}
private Timer t;
private int delay=200;
private board b;
private diamonds objPreDiamonds;
private preview objPreview;
private score objScore;
private
copyright objCopyright;
}
class eluosiFrame extends JFrame
{
public eluosiFrame()
{
setTitle("经典俄罗斯方