gamethread.java

来自「基本的俄罗斯游戏 基本的俄罗斯游戏 基本的俄罗斯游戏」· Java 代码 · 共 65 行

JAVA
65
字号
 //游戏主线程类,作为主窗体的内部类
 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 + =
减小字号Ctrl + -
显示快捷键?