📄 bullet.java
字号:
import java.util.Random;
/**
* 子弹类
* @author fantasyer
* @version 1.0
*/
public class Bullet
{
//子弹属性
//x坐标、y坐标、子弹运行方向角度、子弹威力、飞行方式、图片种类
int x, y, angle, power, movetype, kind;
//子弹图片的高度、宽度
int width, height;
//子弹速度,x和y方向的速度
double speed, xspeed, yspeed;
//是否显示
boolean isVisible;
//随机移动子弹
static Random r;
/**
* 初始化子弹的属性
*/
Bullet(int x, int y, int angle, int speed, int power, int movetype,
int kind)
{
this.x = x;
this.y = y;
this.angle = angle;
this.speed = speed;
this.power = power;
this.movetype = movetype;
this.kind = kind;
double radians = Math.toRadians(angle);
xspeed = speed*Math.sin(radians);
yspeed = (-speed)*Math.cos(radians);
width = height = Utility.getSize(kind);
isVisible = true;
r = new Random();
}
/**
* 控制子弹的运动
*/
public void move()
{
if (movetype==Utility.DOWN_MOVE||movetype==Utility.UP_MOVE)
{
x = (int)(x+xspeed);
y = (int)(y+yspeed);
}
else if (movetype==Utility.LR_MOVE) //左右摇摆子弹
{
x += r.nextInt(11)-5;
y += yspeed;
}
else if (movetype==Utility.TARGET_MOVE) //跟踪子弹
{
if (x>Utility.GAME_WIDTH/2)
{
x--;
}
else if (x<Utility.GAME_WIDTH/2)
{
x++;
}
y += yspeed;
}
}
/**
* 检查子弹是否出了边界
*/
public void checkEdge()
{
if (x<0||x>Utility.GAME_WIDTH||y<0||y>Utility.GAME_HEIGHT)
{
isVisible = false;
}
}
/**
* 获取isVisible属性
* @return 控制子弹是否显示的isVisible属性
*/
public boolean getVisible()
{
return isVisible;
}
/**
* 设置isVisible的属性
* @param value 用于设置子弹的显示属性
*/
public void setVisible(boolean value)
{
isVisible = value;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -