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

📄 zid.java

📁 坦克游戏的源码,绝对震撼.大家快来呀,一切都是真的,绝对不骗人
💻 JAVA
字号:
package tank;

import java.awt.Graphics;
import java.awt.Image;
import java.awt.Rectangle;
import java.awt.Toolkit;
import java.util.List;
import java.util.Random;

import javax.swing.JOptionPane;

import tank.Tank.Direction;



public class Zid {
	int x;
	int y;
	public int XSPEED;
	public int YSPEED;
	
	 int gg,x1,y1,dj1;
	 Random rd=new Random();
    Tank.Direction  dir;
    boolean life=true;
    TankClient tc=null;
    boolean good=false;
    Toolkit tk=Toolkit.getDefaultToolkit();
    Image  img=null;
    
    public  Zid(){}
	public Zid(int x, int y, Direction dir) {
		this.x = x+25;
		this.y = y+25;
		this.dir = dir;
	}
	public Zid(int x, int y, Direction dir,TankClient tc) {
		this.x = x+25;
		this.y = y+25;
		this.dir = dir;
		this.tc=tc;
		
	}
	
	public Zid(int x, int y, Direction dir,TankClient tc,boolean good) {
		this.x = x+25;
		this.y = y+25;
		this.dir = dir;
		this.tc=tc;
		this.good=good;
	
		
	}
    
	public  void  draw(Graphics g,int XSPEED,int YSPEED )
	{ 
		this.XSPEED=XSPEED;
		this.YSPEED=YSPEED;
        x1=rd.nextInt(700);
        y1=rd.nextInt(500);
        dj1=rd.nextInt(7);
	    g.drawImage(img,x,y,null);
	    move();
	  if(!life)
	   tc.bullets.remove(this);
	}
	public void move(){
		zhangq(tc.walls);
		hitZid(tc.bullets);
		if(dir==Direction.L)
		{	x-=XSPEED;
		img=tk.getImage(TankClient.class.getClassLoader().getResource("images/missileL.gif"));
		}
		else if(dir==Direction.LU)
		{
			x-=XSPEED;
		    y-=YSPEED;
		    img=tk.getImage(TankClient.class.getClassLoader().getResource("images/missileLU.gif"));
		}
		else if(dir==Direction.U)
		{
		    y-=YSPEED;
		    img=tk.getImage(TankClient.class.getClassLoader().getResource("images/missileD.gif"));
		}
		else if(dir==Direction.UR)
		{
			x+=XSPEED;
		    y-=YSPEED;
		    img=tk.getImage(TankClient.class.getClassLoader().getResource("images/missileRU.gif"));
		}
		else if(dir==Direction.R)
		{
			x+=XSPEED;
			 img=tk.getImage(TankClient.class.getClassLoader().getResource("images/missileR.gif"));
		}
		else if(dir==Direction.RD)
		{
			x+=XSPEED;
		    y+=YSPEED;
		    img=tk.getImage(TankClient.class.getClassLoader().getResource("images/missileRD.gif"));
		}
		else if(dir==Direction.D)
		{
		    y+=YSPEED;
		    img=tk.getImage(TankClient.class.getClassLoader().getResource("images/missileU.gif"));
		}
		else if(dir==Direction.DL)
		{
			x-=XSPEED;
		    y+=YSPEED;
		    img=tk.getImage(TankClient.class.getClassLoader().getResource("images/missileLD.gif"));
		}
		
		if(x>tc.getWidth()|| y>tc.getHeight() || x<0 ||y<0)
			life=false;
		hitTanks(tc.enemy);
		hitTank(tc.myTank);
	
		
	}

	public boolean isGood() {
		
		return good;
	}
 
	public boolean isLife() {
		return life;
	}
	public  boolean  hitTank(Tank t)
	{
		boolean flag=false;
		
		if( good != t.good  )
		{
			flag=this.getRectangle().intersects(t.getRectangle());
			if(flag)
			{
				if(t.life)
				{
				 tc.explodes.add(new Explode(x,y));
				 life=false;
				 
	
				
            
                  if(!good) { 	 
				  tc.huanlife();
                  }
               
                        if(good&&((t.bdx==2)||(t.bdx==3)||(t.bdx==4))){
                        if(new Rectangle(x1,y1,50,50).intersects(new Rectangle(250,450,50*5,50*3)))
                        { 
                        	tc.dj.add(new Csqj(98,89,dj1,tc));
                        }
                        	else
                        	{	
                        	tc.dj.add(new Csqj(x1,y1,dj1,tc));
                        	}
                        	} 
				
				}

			}
		}
		
		
		return flag;
		
	}
	
public void hitZid(List<Zid> zid)
{    
	
    for(int i=0;i<zid.size();i++)
    {
    	Zid zd=zid.get(i);
    	int x=zd.x;
    	int y=zd.y;
    	if(this.good!=zd.good)
    	{
    	  if(this.getRectangle().intersects(new Rectangle(x,y,26,26)))
    	  {
    	  this.life=false; zd.life=false;	
    	  }  }	
    }
    

}
public void zhangq(List<Wall> walls)
{
	for(int i=0;i<walls.size();i++)
	{  
		if(this.getRectangle().intersects(walls.get(i).getRectangle()))
		{   
			if((int)walls.get(i).shu!=3&&(int)walls.get(i).shu!=7)
			{	
			tc.explodes.add(new Explode(x,y));
			this.life=false;
			}
			 tc.del(i,this);
	
		  
		    if(this.getRectangle().intersects(new Rectangle(350,550,50,50)))
		    {   
		    
		      tc.frame(); 
              this.x=0;
              this.y=0;
		    } 	
		}
		
	}
	
}	
public Rectangle  getRectangle(){
		
		return new Rectangle(x,y,5,5);
		
	}
	
	public void hitTanks(List<Tank> tanks)
	{
		for(int i=0; i<tanks.size();i++){
			
			if(this.hitTank(tanks.get(i)))
				if(tc.clera!=1){
				tc.enemy.remove(i);
				tc.fenshu+=50;
				}else{
			   tc.clera=0;		
			    }

		}
	}
    
}

⌨️ 快捷键说明

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