📄 zid.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 + -