📄 tankthread.java
字号:
import java.awt.*;import javax.swing.*;import java.awt.event.*;public class TankThread extends JFrame implements Runnable{ TankFrame tankFrame; MyTank mytank; Thread enemyTankThread[][]=new Thread[3][2]; EnemyTank enemyTank[][]=new EnemyTank[3][2]; Ball myBall; Ball enemyBall[][]=new Ball[3][2]; Fort fort; Brick brick; Prop prop; Subtitle subtitle; Sound sound; boolean life; int grade,sleeptime; int timeSign=0; int defendSign=0; int no=0; int cost=0; TankThread(TankFrame tankFrame,MyTank mytank,int grade) throws Exception{ this.tankFrame=tankFrame; this.mytank=mytank; this.grade=grade; sleeptime=30; life=true; Inirial(); } public void Inirial() throws Exception{ cost=0; fort=new Fort(tankFrame,this.grade); brick=new Brick(tankFrame,grade); subtitle=new Subtitle(tankFrame,grade); sound = new Sound(); tankFrame.subtitle=subtitle; tankFrame.brick=brick; tankFrame.fort=fort; } public void MyTankSlot(){ for(int i=0;i<3;i++){ for(int j=0;j<2;j++){ if(enemyTank[i][j]!=null){ if(mytank.FlagUp){ if((mytank.x>enemyTank[i][j].x-40 && mytank.x<enemyTank[i][j].x+40)&&(mytank.y>enemyTank[i][j].y && mytank.y<=enemyTank[i][j].y+40)){ mytank.SignUp=false; } } else if(mytank.FlagDown){ if((mytank.x>enemyTank[i][j].x-40 && mytank.x<enemyTank[i][j].x+40)&&(mytank.y>=enemyTank[i][j].y-40 && mytank.y<enemyTank[i][j].y)){ mytank.SignDown=false; } } else if(mytank.FlagLeft){ if((mytank.y>enemyTank[i][j].y-40 && mytank.y<enemyTank[i][j].y+40) && (mytank.x>enemyTank[i][j].x && mytank.x<=enemyTank[i][j].x+40)){ mytank.SignLeft=false; } } else if(mytank.FlagRight){ if((mytank.y>enemyTank[i][j].y-40 && mytank.y<enemyTank[i][j].y+40) && (mytank.x>=enemyTank[i][j].x-40 && mytank.x<enemyTank[i][j].x)){ mytank.SignRight=false; } } } } } for(int i=0;i<brick.num;i++){ if(brick.wall[i]!=null){ if(mytank.FlagUp){ if(((mytank.x+10>=brick.wall[i].x && mytank.x+10<=brick.wall[i].x+20)||(mytank.x+30>=brick.wall[i].x && mytank.x+30<=brick.wall[i].x+20)) &&(mytank.y==brick.wall[i].y+20)){ mytank.SignUp=false; } } else if(mytank.FlagDown){ if(((mytank.x+10>=brick.wall[i].x && mytank.x+10<=brick.wall[i].x+20)||(mytank.x+30>=brick.wall[i].x && mytank.x+30<=brick.wall[i].x+20)) &&(mytank.y+40==brick.wall[i].y)){ mytank.SignDown=false; } } else if(mytank.FlagLeft){ if(((mytank.y+10>=brick.wall[i].y && mytank.y+10<=brick.wall[i].y+20)||(mytank.y+30>=brick.wall[i].y && mytank.y+30<=brick.wall[i].y+20)) && (mytank.x==brick.wall[i].x+20)){ mytank.SignLeft=false; } } else if(mytank.FlagRight){ if(((mytank.y+10>=brick.wall[i].y && mytank.y+10<=brick.wall[i].y+20)||(mytank.y+30>=brick.wall[i].y && mytank.y+30<=brick.wall[i].y+20)) &&(mytank.x+40==brick.wall[i].x)){ mytank.SignRight=false; } } } } if(fort!=null){ if(mytank.FlagDown){ if((mytank.x>200 && mytank.x<280) && mytank.y>=560){ mytank.SignDown=false; } } else if(mytank.FlagLeft){ if((mytank.x>240 && mytank.x<=280)&&mytank.y>520){ mytank.SignLeft=false; } } else if(mytank.FlagRight){ if(mytank.x>=200 && mytank.x<280 && mytank.y>520){ mytank.SignRight=false; } } } } public void CreatEnemyTank(int n,int k){ if(enemyTank[n][k]==null && subtitle.EnemyNo>=6){ if(k!=0 && enemyTank[n][0]!=null && enemyTank[n][0].counter>15 ){ enemyTank[n][k]=new EnemyTank(n*240,tankFrame); enemyTank[n][k].Type=(int)(Math.random()*10); } else if(k==0){ if(cost>=10){ enemyTank[n][k]=new EnemyTank(n*240,tankFrame); enemyTank[n][k].Type=(int)(Math.random()*10); } } if(enemyTank[n][k]!=null) switch(enemyTank[n][k].Type){ case 0:{}case 1:{}case 2:{}case 3:{}case 4: enemyTank[n][k].image=Toolkit.getDefaultToolkit().getImage("images/32.jpg"); enemyTank[n][k].ima=null; enemyTank[n][k].lifetime=1; break; case 5:{}case 6:{}case 7: enemyTank[n][k].image=Toolkit.getDefaultToolkit().getImage("images/42.jpg"); enemyTank[n][k].ima=null; enemyTank[n][k].lifetime=3; break; case 8: enemyTank[n][k].image=Toolkit.getDefaultToolkit().getImage("images/32.jpg"); enemyTank[n][k].ima=Toolkit.getDefaultToolkit().getImage("images/52.jpg"); enemyTank[n][k].lifetime=1; break; case 9: enemyTank[n][k].image=Toolkit.getDefaultToolkit().getImage("images/42.jpg"); enemyTank[n][k].ima=Toolkit.getDefaultToolkit().getImage("images/52.jpg"); enemyTank[n][k].lifetime=3; break; } tankFrame.enemyTank[n][k]=enemyTank[n][k]; CreatEnemyTankThread(enemyTank[n][k],n,k); } } public void CreatEnemyTankThread(EnemyTank enemyTank,int n,int k){ enemyTankThread[n][k]=new Thread(enemyTank); enemyTankThread[n][k].start(); } // 敌坦克的运行轨迹 判断敌坦克是否可以朝原方向运行 public void EnemyTankSlot(int n,int k){ if(enemyTank[n][k]!=null){ if(enemyTank[n][k].FlagUp){ if(((enemyTank[n][k].x>=mytank.x && enemyTank[n][k].x<=mytank.x+30)||(enemyTank[n][k].x+40>=mytank.x+10 && enemyTank[n][k].x+40<=mytank.x+40)) &&(enemyTank[n][k].y==mytank.y+40)){ enemyTank[n][k].up=false; switch((int)(Math.random()*3)){ case 0: enemyTank[n][k].down=true; break; case 1: enemyTank[n][k].left=true; break; case 2: enemyTank[n][k].right=true; break; } } } else if(enemyTank[n][k].FlagDown){ if(((enemyTank[n][k].x>=mytank.x && enemyTank[n][k].x<=mytank.x+30) || (enemyTank[n][k].x+40>=mytank.x+10 && enemyTank[n][k].x+40<=mytank.x+40)) &&(enemyTank[n][k].y+40==mytank.y)){ enemyTank[n][0].down=false; switch((int)(Math.random()*3)){ case 0: enemyTank[n][k].up=true; break; case 1: enemyTank[n][k].left=true; break; case 2: enemyTank[n][k].right=true; break; } } } else if(enemyTank[n][k].FlagLeft){ if(((enemyTank[n][k].y>=mytank.y && enemyTank[n][k].y<=mytank.y+30)||(enemyTank[n][k].y+40>=mytank.y+10 && enemyTank[n][k].y+40>=mytank.y+40)) && (enemyTank[n][k].x==mytank.x+40)){ enemyTank[n][k].left=false; switch((int)(Math.random()*3)){ case 0: enemyTank[n][k].up=true; break; case 1: enemyTank[n][k].down=true; break; case 2: enemyTank[n][k].right=true; break; } } } else if(enemyTank[n][k].FlagRight){ if(((enemyTank[n][k].y>=mytank.y && enemyTank[n][k].y<=mytank.y+30)||(enemyTank[n][k].y+40>=mytank.y+10 && enemyTank[n][k].y+40<=mytank.y+40)) &&(enemyTank[n][k].x+40==mytank.x)){ enemyTank[n][k].right=false; switch((int)(Math.random()*3)){ case 0: enemyTank[n][k].up=true; break; case 1: enemyTank[n][k].down=true; break; case 2: enemyTank[n][k].left=true; break; } } } for(int i=0;i<3;i++){ for(int j=0;j<2;j++){ if((i!=n || j!=k ) && enemyTank[i][j]!=null &&enemyTank[n][k]!=null){ if(enemyTank[n][k].FlagUp){ if(((enemyTank[n][k].x>=enemyTank[i][j].x && enemyTank[n][k].x<=enemyTank[i][j].x+30)||(enemyTank[n][k].x+40>=enemyTank[i][j].x+10 && enemyTank[n][k].x+40<=enemyTank[i][j].x+40)) &&(enemyTank[n][k].y==enemyTank[i][j].y+40)){ enemyTank[n][k].up=false; switch((int)(Math.random()*3)){ case 0: enemyTank[n][k].down=true; break; case 1: enemyTank[n][k].left=true; break; case 2: enemyTank[n][k].right=true; break; } } } else if(enemyTank[n][k].FlagDown){ if(((enemyTank[n][k].x>=enemyTank[i][j].x && enemyTank[n][k].x<=enemyTank[i][j].x+30) || (enemyTank[n][k].x+40>=enemyTank[i][j].x+10 && enemyTank[n][k].x<=enemyTank[i][j].x)) &&(enemyTank[n][k].y+40==enemyTank[i][j].y)){ enemyTank[n][k].down=false; switch((int)(Math.random()*3)){ case 0: enemyTank[n][k].up=true; break; case 1: enemyTank[n][k].left=true; break; case 2: enemyTank[n][k].right=true; break; } } } else if(enemyTank[n][k].FlagLeft){ if(((enemyTank[n][k].y>=enemyTank[i][j].y && enemyTank[n][k].y<=enemyTank[i][j].y+30)||(enemyTank[n][k].y+40>=enemyTank[i][j].y+10 && enemyTank[n][k].y+40>=enemyTank[i][j].y+40)) && (enemyTank[n][k].x==enemyTank[i][j].x+40)){ enemyTank[n][k].left=false; switch((int)(Math.random()*3)){ case 0: enemyTank[n][k].up=true; break; case 1: enemyTank[n][k].down=true; break; case 2: enemyTank[n][k].right=true; break; } } } else if(enemyTank[n][k].FlagRight){ if(((enemyTank[n][k].y>=enemyTank[i][j].y && enemyTank[n][k].y<=enemyTank[i][j].y+30)||(enemyTank[n][k].y+40>=enemyTank[i][j].y+10 && enemyTank[n][k].y+40<=enemyTank[i][j].y+40)) &&(enemyTank[n][k].x+40==enemyTank[i][j].x)){ enemyTank[n][k].right=false; switch((int)(Math.random()*3)){ case 0: enemyTank[n][k].up=true; break;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -