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

📄 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){ 
//弹出player1胜利对话框 
JOptionPane.showMessageDialog(null,  
"你结束了!!!", 
"Game Over !", JOptionPane.ERROR_MESSAGE); 
//结束游戏 
System.exit(0) ; 
} 
this.repaint() ; 
} 

} 
} 

⌨️ 快捷键说明

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