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

📄 tankthread.java

📁 新功能坦克大战
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
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 + -