📄 gamethread.java
字号:
//游戏主线程类,作为主窗体的内部类
public class GameThread extends Thread{
int count;
int blockType;
GameMainFrame gmf;
Thread thread;
public GameThread(GameMainFrame gmf){
count=0;
blockType=0;
this.gmf=gmf;
}
public void run(){
while(true){
if(gmf.block.getIsBottom()&&(!gmf.block.getIsTop())){
blockType=gmf.nextblockType;
switch(blockType){//根据提示区的方块产生游戏区的方块
case 0:gmf.block=new BlockOne(gmf);break;
case 1:gmf.block=new BlockTwo(gmf);break;
case 2:gmf.block=new BlockThree(gmf);break;
case 3:gmf.block=new BlockFour(gmf);break;
case 4:gmf.block=new BlockFive(gmf);break;
case 5:gmf.block=new BlockSix(gmf);break;
case 6:gmf.block=new BlockSeven(gmf);break;
default:gmf.block=new BlockOne(gmf);
}
gmf.nextblockType=(int)(Math.random()*1000%7);//继续产生提示区方块
gmf.showNextBlock(gmf.nextblockType);//显示产生的提示方块
}
if(gmf.block.getIsTop())gmf.isEnd=true;//到顶,结束游戏
switch(gmf.block.getDirection()){//处理方块的动作gmf.block.getDirection()
case 1:
gmf.block.left();
gmf.block.setDirection(gmf.block.NORMAL);
break;
case 2:
gmf.block.right();
gmf.block.setDirection(gmf.block.NORMAL);
break;
case 3:
gmf.block.turn();
gmf.block.setDirection(gmf.block.NORMAL);
break;
case 4:
gmf.block.downToBottom();
gmf.block.setDirection(gmf.block.NORMAL);
break;
default:
//if(!gmf.isEnd&&!gmf.isPause){//游戏没结束或暂停,线程控制游戏继续进行
try{
this.sleep(gmf.speed);
}catch(InterruptedException e){}
//while(count<50)count++;//控制游戏的灵敏度
// else{
gmf.block.dowmoneLine();//方块逐行下落
//count=0;
//}
//}
}///switch
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -