📄 tools.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 + -