📄 bomb.java
字号:
package boat;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
/**
* 炸弹类
*/
public class Bomb {
/**炸弹图片*/
private Image bombImage;
/**x坐标*/
private int x;
/**y坐标*/
private int y;
/**是否可见*/
public static boolean isDisplay = false;
/**屏幕高度*/
private int height;
/**图片高度*/
private int imageHeight;
/**图片宽度*/
private int imageWidth;
/**移动单位*/
private int dy = 2;
/**
* 构造方法
* @param bombImage Image 炸弹图片
* @param x int x坐标
* @param y int y坐标
* @param height 屏幕高度
*/
public Bomb(Image bombImage, int x, int y, int height) {
this.bombImage = bombImage;
this.x = x;
this.y = y;
this.height = height;
//初始化图片高度和宽度
this.imageHeight = bombImage.getHeight();
this.imageWidth = bombImage.getWidth();
}
/**
* 绘制方法
* @param g Graphics 画笔
*/
public void paint(Graphics g) {
g.drawImage(bombImage, x, y, Graphics.TOP | Graphics.LEFT);
}
/**
* 移动方法
*/
public void move() {
if (y < height) {
y += dy;
} else {
//使炸弹不可见
isDisplay = false;
}
}
/**
* 是否和潜艇发生碰撞
* @param submarine Submarine 潜艇对象
* @return boolean true代表碰撞,false代表未发生碰撞
*/
public boolean collidesWith(Submarine submarine) {
//炸弹中心点的坐标
int bx = x + imageWidth / 2;
int by = y + imageHeight / 2;
//潜艇中心点的坐标
int sx = submarine.getX() + submarine.getImageWidth() / 2;
int sy = submarine.getY() + submarine.getImageHeight() / 2;
//判断中心点之间的距离
if ((Math.abs(bx - sx) < (imageWidth + submarine.getImageWidth()) / 2)
&&
(Math.abs(by - sy) < (imageHeight + submarine.getImageHeight()) / 2)) {
return true;
} else {
return false;
}
}
/**
* 碰撞处理
* @param submarine Submarine 潜艇对象
*/
public void handlecollidesWith(Submarine submarine) {
//设置炸弹不可见
isDisplay = false;
//潜艇爆炸
submarine.setIsBoom(true);
}
/**
* 设置x坐标
* @param x int x坐标
*/
public void setX(int x) {
this.x = x;
}
/**
* 设置y坐标
* @param y int y坐标
*/
public void setY(int y) {
this.y = y;
}
/**
* 获得炸弹图片宽度
* @return int 炸弹图片宽度
*/
public int getImageWidth() {
return imageWidth;
}
/**
* 获得炸弹图片高度
* @return int 炸弹图片高度
*/
public int getImageHeight() {
return imageHeight;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -