俄罗斯方块java
olNo=b.objDiamonds.getReferPoint();
//移动前要先判断是否会超出容器的边框.
if(keyCode==KeyEvent.VK_LEFT)
{
if(b.objSystemStatus.getSystemStatus()!=0&&b.objSystemStatus.getSystemStatus()!=2&&b.objSystemStatus.getSystemStatus()!=3)
{
if(rtnRowColNo[1]-1>=0)
{
t.stop();
//方块5向左移动时,如果遇到已使用的格子,就取消向左移动的情况.
int isTouch=0; //为0表示未接触,为1表示已接触.
int[][] aryLeftTouchGrids; //存放方块左侧接触面上格子的行号和列号.
aryLeftTouchGrids=b.objDiamonds.leftTouchGrids();
for(int i=0;i<aryLeftTouchGrids.length;i++)
{
if(b.getAryGrids(aryLeftTouchGrids[i][0],aryLeftTouchGrids[i][1]-1)==1)
{
isTouch=1;
break;
}
}
if(isTouch==0)
b.objDiamonds.setReferPoint(rtnRowColNo[0],rtnRowColNo[1]-1);
t.start();
}
}
}
else
if(keyCode==KeyEvent.VK_RIGHT)
{
if(b.objSystemStatus.getSystemStatus()!=0&&b.objSystemStatus.getSystemStatus()!=2&&b.objSystemStatus.getSystemStatus()!=3)
{
if(rtnRowColNo[1]+1<(b.getWidthGrid()-(b.objDiamonds.getWidthGrid()-1)))
{
t.stop();
//方块5向右移动时,如果遇到已使用的格子,就取消向右移动的情况.
int isTouch=0; //为0表示未接触,为1表示已接触.
int[][] aryRightTouchGrids;
aryRightTouchGrids=b.objDiamonds.rightTouchGrids();
for(int i=0;i<aryRightTouchGrids.length;i++)
{
if(b.getAryGrids(aryRightTouchGrids[i][0],aryRightTouchGrids[i][1]+1)==1)
{
isTouch=1;
break;
}
}
if(isTouch==0)
b.objDiamonds.setReferPoint(rtnRowColNo[0],rtnRowColNo[1]+1);
t.start();
}
}
}
else
//按了"向下键"的事件处理比较特殊,如果位置合适,方块5将变为固定的格子.
if(keyCode==KeyEvent.VK_DOWN)
{
if(b.objSystemStatus.getSystemStatus()!=0&&b.objSystemStatus.getSystemStatus()!=2&&b.objSystemStatus.getSystemStatus()!=3)
{
//t.stop(); //按向下键时方块不自动下落.
//方块5已经沉底,要被固定的情况
if(rtnRowColNo[0]-1<0)
{
int[][] rtnPosition;
rtnPosition=b.objDiamonds.diamondsPosition();
//把容器中与方块的显示部分位置相对应的格子设为已使用.
for(int i=0;i<rtnPosition.length;i++)
if((rtnPosition[i][0]!=-1)&&(rtnPosition[i][1]!=-1))
b.setAryGrids(rtnPosition[i][0],rtnP
osition[i][1],1);
//对已满的行要进行消行处理.
int tmpLineNum;
tmpLineNum=b.removeRows();
objScore.addScore(tmpLineNum); //消行后要累加分数.
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库俄罗斯方块java(12)在线全文阅读。
相关推荐: