📄 missile.java
字号:
package tank;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Rectangle;
public class Missile {
int x,y;
TankClient tc;
private static final int Missile_XSPEED=10;
private static final int Missile_YSPEED=10;
private boolean live;
private boolean good;
public boolean isGood() {
return good;
}
private static final int Missile_WIDTH=10;
public static int getMissile_WIDTH() {
return Missile_WIDTH;
}
public static int getMissile_HEIGHT() {
return Missile_HEIGHT;
}
private static final int Missile_HEIGHT=10;
Director dir;
public Missile(int x, int y,Director dir,boolean good,TankClient tc) {
this.x = x;
this.y = y;
this.dir=dir;
this.tc=tc;
this.good=good;
live=true;
}
public void draw(Graphics g){
if(!isLive()){
tc.missileList.remove(this);
return;
}
Color c=g.getColor();
if (good){
g.setColor(Color.RED);
}else{
g.setColor(Color.CYAN);
}
g.fillOval(x,y, Missile_WIDTH,Missile_HEIGHT);
g.setColor(c);
move();
}
void move(){
if(x<0 || y<0 || y>TankClient.getGAME_HEIGHT() || x>TankClient.getGAME_WIDTH())
{
live=false;
tc.missileList.remove(this);
return;
}
switch(dir){
case UP:
y-=Missile_YSPEED;
break;
case DOWN:
y+=Missile_YSPEED;
break;
case LEFT:
x-=Missile_XSPEED;
break;
case RIGHT:
x+=Missile_XSPEED;
break;
case LU:
x-=Missile_XSPEED;
y-=Missile_YSPEED;
break;
case RU:
x+=Missile_XSPEED;
y-=Missile_YSPEED;
break;
case RD:
x+=Missile_XSPEED;
y+=Missile_YSPEED;
break;
case LD:
x-=Missile_XSPEED;
y+=Missile_YSPEED;
break;
}
collidesWithWall(tc.getW1());
collidesWithWall(tc.getW2());
}
void collidesWithWall(Wall w){
if(this.getRect().intersects(w.getRect())){
this.live=false;
}
}
public boolean isLive() {
return live;
}
public int getY() {
return y;
}
public int getX() {
return x;
}
public void setLive(boolean live) {
this.live = live;
}
public Rectangle getRect(){
return new Rectangle(this.getX(),this.getY(),Missile_WIDTH,Missile_HEIGHT);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -