⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hstank2.java

📁 利用java做的坦克游戏,值新人得看看哦
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
	public void keyPressed(KeyEvent e) {
		color ++ ;
		if(e.getKeyCode() == KeyEvent.VK_UP) {
			op = 1 ;
			y = y - tankspeed ;
			dy = dy - tankspeed ;
			if(y <= 0) {
				y = y + tankspeed ;
				dy = dy + tankspeed ;
			}
		}
		if(e.getKeyCode() == KeyEvent.VK_RIGHT) {
			op = 2 ;
			x = x + tankspeed ;
			dx = dx + tankspeed ;
			if(x >= 560) {
				x = x - tankspeed ;
				dx = dx - tankspeed ;
			}
		}
		if(e.getKeyCode() == KeyEvent.VK_DOWN) {
			op = 3 ;
			y = y + tankspeed ;
			dy = dy + tankspeed ;
			if(y >= 560) {
				y = y - tankspeed ;
				dy = dy - tankspeed ;
			}
		}
		if(e.getKeyCode() == KeyEvent.VK_LEFT) {
			op = 4 ;
			x = x - tankspeed ;
			dx = dx - tankspeed ;
			if(x <= 0) {
				x = x + tankspeed ;
				dx = dx + tankspeed ;
			}
		}
		
		if(e.getKeyCode() == KeyEvent.VK_SPACE) {
			if(op == 1) {
				dx1 = dx ; dy1 = dy ;
			}
			if(op == 2) {
				dx2 = dx ; dy2 = dy ;
			}
			if(op == 3) {
				dx3 = dx ; dy3 = dy ;
			}
			if(op == 4) {
				dx4 = dx ; dy4 = dy ;
			}
		}
		
		this.repaint() ;
	}

	public void keyReleased(KeyEvent e) {

	}
	
	public void run() {
		
		for (int a = 0; a<60000; a++) {
		    dy1 = dy1 - tankbullet ;
			dx2 = dx2 + tankbullet ;
			dy3 = dy3 + tankbullet ;
			dx4 = dx4 - tankbullet ;
			
			for (int i = 0; i<num; i++) {
				dyf1[i] = dyf1[i] - tankfbullet ;
				dxf2[i] = dxf2[i] + tankfbullet ;
				dyf3[i] = dyf3[i] + tankfbullet ;
				dxf4[i] = dxf4[i] - tankfbullet ;
			}
			
			//判断是否被击中
			for (int i = 0; i<num; i++) {
				if(dyf1[i]<y + 38 &&dyf1[i]>y +8 && dxf1[i]-x>-10 && dxf1[i]-x<40) {
					System.out.println ("被1击中") ;
					dxf1[i] = dxf[i] ; dyf1[i] = dyf[i] ;
					shengming = shengming - nandu ;
				}
				
				if(dxf2[i]>x+2 &&dxf2[i]<x+32 &&dyf2[i] - y >-10 && dyf2[i] - y <40 ) {
					System.out.println ("被2击中") ;
					dxf2[i] = dxf[i] ; dyf2[i] = dyf[i] ;
					shengming = shengming - nandu ;
				}

				if(dyf3[i]>y+2 && dyf3[i]< y+32 && dxf3[i]-x >-10&& dxf3[i]-x<40) {
					System.out.println ("被3击中") ;
					dxf3[i] = dxf[i] ; dyf3[i] = dyf[i] ;
					shengming = shengming - nandu ;
				}
				
				if(dxf4[i]>x+8 &&dxf4[i]<x+38 &&dyf4[i] - y >-10 && dyf4[i] - y <40 ) {
					System.out.println ("被4击中") ;
					dxf4[i] = dxf[i] ; dyf4[i] = dyf[i] ;
					shengming = shengming - nandu ;
				}
			}
			
			//判断是否击中敌军
			for (int i = 0; i<num; i++) {
				if(dy1<yf[i] + 38 &&dy1>yf[i] +8 && dx1-xf[i]>-10 && dx1-xf[i]<40) {
					System.out.println ("1击中") ;
					fenshu = fenshu + 100 ;
					xf[i] = (int)(Math.random() * 560 );
					yf[i] = (int)(Math.random() * 560 );
				}
				
				if(dx2>xf[i]+2 &&dx2<xf[i]+32 &&dy2 - yf[i] >-10 && dy2 - yf[i] <40 ) {
					System.out.println ("2击中") ;
					fenshu = fenshu + 100 ;
					xf[i] = (int)(Math.random() * 560 );
					yf[i] = (int)(Math.random() * 560 );
				}

				if(dy3>yf[i]+2 && dy3< yf[i]+32 && dx3-xf[i] >-10&& dx3-xf[i]<40) {
					System.out.println ("3击中") ;
					fenshu = fenshu + 100 ;
					xf[i] = (int)(Math.random() * 560 );
					yf[i] = (int)(Math.random() * 560 );
				}
				
				if(dx4>xf[i]+8 &&dx4<xf[i]+38 &&dy4 - yf[i] >-10 && dy4 - yf[i] <40 ) {
					System.out.println ("4击中") ;
					fenshu = fenshu + 100 ;
					xf[i] = (int)(Math.random() * 560 );
					yf[i] = (int)(Math.random() * 560 );
				}
				
				dxf[i] = xf[i] + 15 ; 
				dyf[i] = yf[i] + 15 ;
			}
			
			//坦克的移动
			for (int i = 0; i<num; i++) {
				
				switch (opf[i]) {
			    	case 1:{ 
			    		yf[i]-- ; 
			    		dyf[i] -- ;
			    		
			    		for (int s = 0; s<num; s++) {
			    			if(yf[i] <= 0) {
			    				yf[i] ++ ;
			    				dyf[i] ++ ;
			    			}
			    		}
			    		break;
			    	}
			    	
			    	case 2:{ 
			    		xf[i]++ ; 
			    		dxf[i]++ ;
			    		
			    		for (int s = 0; s<num; s++) {
			    			if(xf[i] >= 560){
			    				xf[i] -- ;
			    				dxf[i] -- ;
			    			}
			    		}
			    		break;
			    	}
			    		
			    	case 3:{ 
			    		yf[i]++ ;
			    		dyf[i]++ ;
			    	
			    		for (int s = 0; s<num ; s++) {
			    			if(yf[i] >= 560){
			    			 	yf[i] -- ;   
			    			 	dyf[i] -- ; 	
			    			}
			    		}
						break;
			    	}
			    	
			    	case 4:{ 
			    		xf[i]-- ;
			    		dxf[i]-- ;
			    		
			    		for (int s = 0; s<num; s++) {
			    			if(xf[i] <= 0){
			    				xf[i] ++ ;
			    				dxf[i] ++ ;
			    			}
			    		}
			    		
			    		break;
			    	}
			    }
			    
			    
			}
			
			try{
				Thread.sleep(20) ;
			}catch(Exception e) {
				e.printStackTrace() ;
			}
						
			//坦克的开火
			if(a % 50 == 5) {
				if(Math.random()>0.5){
					for (int i = 0; i<2; i++) {
						if(opf[i] == 1) {
							dxf1[i] = dxf[i] ; dyf1[i] = dyf[i] ;
						}
						if(opf[i] == 2) {
							dxf2[i] = dxf[i] ; dyf2[i] = dyf[i] ;
						}
						if(opf[i] == 3) {
							dxf3[i] = dxf[i] ; dyf3[i] = dyf[i] ;
						}
						if(opf[i] == 4) {
							dxf4[i] = dxf[i] ; dyf4[i] = dyf[i] ;
						}
					}	
				}
				
			}
			
			if(a % 50 == 15) {
				if(Math.random()>0.5) {
					for (int i = 2; i<4; i++) {
						if(opf[i] == 1) {
							dxf1[i] = dxf[i] ; dyf1[i] = dyf[i] ;
						}
						if(opf[i] == 2) {
							dxf2[i] = dxf[i] ; dyf2[i] = dyf[i] ;
						}
						if(opf[i] == 3) {
							dxf3[i] = dxf[i] ; dyf3[i] = dyf[i] ;
						}
						if(opf[i] == 4) {
							dxf4[i] = dxf[i] ; dyf4[i] = dyf[i] ;
						}
					}					
				}

			}
			
			if(a % 50 == 25) {
				if(Math.random()>0.5){
					for (int i = 4; i<6; i++) {
						if(opf[i] == 1) {
							dxf1[i] = dxf[i] ; dyf1[i] = dyf[i] ;
						}
						if(opf[i] == 2) {
							dxf2[i] = dxf[i] ; dyf2[i] = dyf[i] ;
						}
						if(opf[i] == 3) {
							dxf3[i] = dxf[i] ; dyf3[i] = dyf[i] ;
						}
						if(opf[i] == 4) {
							dxf4[i] = dxf[i] ; dyf4[i] = dyf[i] ;
						}
					}					
				}

			}
			
			if(a % 50 == 35) {
				if(Math.random()>0.5){
					for (int i = 6; i<8; i++) {
						if(opf[i] == 1) {
							dxf1[i] = dxf[i] ; dyf1[i] = dyf[i] ;
						}
						if(opf[i] == 2) {
							dxf2[i] = dxf[i] ; dyf2[i] = dyf[i] ;
						}
						if(opf[i] == 3) {
							dxf3[i] = dxf[i] ; dyf3[i] = dyf[i] ;
						}
						if(opf[i] == 4) {
							dxf4[i] = dxf[i] ; dyf4[i] = dyf[i] ;
						}
					}					
				}

			}
			
			if(a % 50 == 45) {
				if(Math.random()>0.5) {
					for (int i = 8; i<10; i++) {
						if(opf[i] == 1) {
							dxf1[i] = dxf[i] ; dyf1[i] = dyf[i] ;
						}
						if(opf[i] == 2) {
							dxf2[i] = dxf[i] ; dyf2[i] = dyf[i] ;
						}
						if(opf[i] == 3) {
							dxf3[i] = dxf[i] ; dyf3[i] = dyf[i] ;
						}
						if(opf[i] == 4) {
							dxf4[i] = dxf[i] ; dyf4[i] = dyf[i] ;
						}
					}					
				}

			}
			
			//坦克的随机移动
			if(a % 50 == 1 ) {
				for (int i = 0; i<2; i++) {					
					if( Math.random() > 0.5 ) {
						if(Math.random() > 0.5){
							opf[i] = 1 ;
						}else{
							opf[i] = 2 ;
							}
					}else{
						if(Math.random() > 0.5){
							opf[i] = 3 ;
						}else{
							opf[i] = 4 ;
						}
					}
					
				}
			}
			if(a % 50 == 11 ) {
				//坦克的随机移动
				for (int i = 2; i<4; i++) {					
					if( Math.random() > 0.5 ) {
						if(Math.random() > 0.5){
							opf[i] = 1 ;
						}else{
							opf[i] = 2 ;
							}
					}else{
						if(Math.random() > 0.5){
							opf[i] = 3 ;
						}else{
							opf[i] = 4 ;
						}
					}
					
				}
			}
			if(a % 50 == 21 ) {
				//坦克的随机移动
				for (int i = 4; i<6; i++) {					
					if( Math.random() > 0.5 ) {
						if(Math.random() > 0.5){
							opf[i] = 1 ;
						}else{
							opf[i] = 2 ;
							}
					}else{
						if(Math.random() > 0.5){
							opf[i] = 3 ;
						}else{
							opf[i] = 4 ;
						}
					}
					
				}
			}
			if(a % 50 == 31 ) {
				//坦克的随机移动
				for (int i = 6; i<8; i++) {					
					if( Math.random() > 0.5 ) {
						if(Math.random() > 0.5){
							opf[i] = 1 ;
						}else{
							opf[i] = 2 ;
							}
					}else{
						if(Math.random() > 0.5){
							opf[i] = 3 ;
						}else{
							opf[i] = 4 ;
						}
					}
					
				}
			}
			if(a % 50 == 41 ) {
				//坦克的随机移动
				for (int i = 8; i<10; i++) {					
					if( Math.random() > 0.5 ) {
						if(Math.random() > 0.5){
							opf[i] = 1 ;
						}else{
							opf[i] = 2 ;
							}
					}else{
						if(Math.random() > 0.5){
							opf[i] = 3 ;
						}else{
							opf[i] = 4 ;
						}
					}
					
				}
			}
		//重画
		if(shengming<=0){
				//弹出结束游戏对话框
				JOptionPane.showMessageDialog(null, 
									"你结束了!!!",
									"Game Over !", JOptionPane.ERROR_MESSAGE);
				//结束游戏					
				System.exit(0) ;
		}
		this.repaint() ;	
		}	

	}	
}	

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -