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

📄 bomb.java

📁 军舰打潜艇手机版很好玩
💻 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 + -