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

📄 tools.java

📁 这个是早期学习时写的RPG游戏 包括地图相关 战斗相关 NPC与 存储等 功能
💻 JAVA
字号:
package perGame;

import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
import java.io.*;
import java.util.Random;

public class Tools {
  MyCanvas mc;
    long startTime; //开始时间


    public Tools(MyCanvas mc) {
        this.startTime = System.currentTimeMillis(); //获得当前时间
this.mc=mc;
    }

    /**
     * 方法:切割图片
     * @param g Graphics--画笔
     * @param img Image--图片
     * @param x int--切割框的起始点坐标
     * @param y int--切割框的起始点坐标
     * @param clipX int--图片本身的相对坐标
     * @param clipY int--图片本身的相对坐标
     * @param frameWidth int--单个图片的步进
     * @param frameHeight int--单个图片的步进
     * @param screenWidth int--屏幕宽
     * @param screenHeight int--屏幕高
     */
    public void drawPartImage(Graphics g, Image img, int x, int y, int clipX,
                              int clipY, int frameWidth, int frameHeight) {
        g.setClip(x, y, frameWidth, frameHeight); //实现单个切割框
        g.drawImage(img, x - clipX, y - clipY, g.TOP | g.LEFT); //画图片
        g.setClip(0, 0, mc.screenWidth, mc.screenHeight); //切割整个屏幕
    }

    /**
     * 方法:生成一个图片对象
     * @param name String
     * @return Image
     */
//    public Image drawImage(String name) {
//        Image img = null;
//        try {
//            img = Image.createImage(name);
//        } catch (IOException ex) {
//        }
//        return img;
//
//    }

    /**
     * 方法: 实现两个方块的碰撞
     * @param x1 int--主动方块的左上角坐标
     * @param y1 int--主动方块的左上角坐标
     * @param frameWidth1 int--主动方块的宽
     * @param frameHeight1 int--主动方块的高
     * @param x2 int--被动方块的左上角坐标
     * @param y2 int--被动方块的左上角坐标
     * @param frameWidth2 int----被动方块的宽
     * @param frameHeight2 int----被动方块的高
     */
    public boolean inRect(int x1, int y1, int w1, int h1, int x2
                          , int y2, int w2, int h2) {

        return!((x1 + w1 < x2) || (y1 + h1 < y2) || (x2 + w2 < x1) ||
                (y2 + h2 < y1));
    }
    /**
     * 方法:时间延迟
     * @param duringTime int
     * @return boolean
     */
    public boolean delayTime(int duringTime) {
        long endTime = System.currentTimeMillis();
        if (endTime - this.startTime > duringTime) {
            this.startTime = System.currentTimeMillis();
            return true;
        } else {
            return false;
        }
    }

    /**
     * 方法:画图片数字
     * @param g Graphics--画笔
     * @param img Image--数字图片
     * @param number int--等待画出的数
     * @param x int--所画位置的起始坐标
     * @param y int--所画位置的起始坐标
     * @param frameWidth int--数字图片的宽
     * @param frameHeight int--数字图片的高
     * @param screenWidth int--屏幕宽
     * @param screenHeight int--屏幕高
     */
    public void drawNumber(Graphics g, Image img, int number, int x, int y,
                           int frameWidth, int frameHeight
                           ) {
        String strNumber = number + "";
        for (int i = 0; i < strNumber.length(); i++) {
            int num = Integer.parseInt(strNumber.charAt(i) + "");
            this.drawPartImage(g, img, x + i * frameWidth, y,
                               num * frameWidth, 0, frameWidth, frameHeight
                              );
        }

    }

    /**
     * 方法:得到一个随机数
     * @param min int--范围下限
     * @param max int--范围上限
     * @return int--返回一个int型数值
     */
    public int getRandomNumber(int min, int max) {
        Random r = new Random();
        return Math.abs(r.nextInt() % (max - min + 1)) + min;
    }

    public short [][] jiemi(String name,short data[][]){
        InputStream is;
           DataInputStream dis;
           int rows=0;
           int cols=0;
           is=this.getClass().getResourceAsStream(name);
           dis =new DataInputStream(is);

           try {
               rows = dis.readInt();
               cols=dis.readInt();
           } catch (IOException ex) {
           }
           data=new short[rows][cols];
           for (int i = 0; i < rows; i++) {
               for (int j = 0; j < cols; j++) {
                   try {
                       data[i][j] = dis.readShort();

                   } catch (IOException ex1) {
                   }
               }
           }
           try {
               is.close();
               dis.close();
           } catch (IOException ex2) {
           }
           return data;
    }
    /**
 * 得到一个图片对象
 * @param name String
 * @return Image
 */
public Image getImage(String name) {
    Image img = null;
    try {
        img = Image.createImage(name);
    } catch (IOException ex) {
    }

    return img;
}

}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -