📄 tools.java
字号:
package tools;
import java.io.IOException;
import java.util.Random;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
public class Tools {
/**
* 绘制图片的某一帧
*
* @param g画笔
* @param img要绘制的图片
* @param x要绘制的X位置
* @param y要绘制的Y位置
* @param howFramW图片宽有多少帧
* @param howFramH图片高有多少帧
* @param nowFram当前要绘制的帧
*/
static public void drawFram(Graphics g, Image img, int x, int y,
int howFramW, int howFramH, int nowFram) {
int FramW = img.getWidth() / howFramW;// 每一帧宽有多少像素
int FramH = img.getHeight() / howFramH;// 每一帧高有多少像素
int tempX = g.getClipX();
int tempY = g.getClipY();
int tempW = g.getClipWidth();
int tempH = g.getClipHeight();
g.setClip(x, y, FramW, FramH);
g.drawImage(img, x - (nowFram % howFramW) * FramW, y
- (nowFram / howFramW) * FramH, 20);
g.setClip(tempX, tempY, tempW, tempH);
}
/**
* 导入图片
*
* @param name路径名
* @return
*/
static public Image getImage(String name) {
Image temp = null;
try {
temp = Image.createImage("/res/" + name + ".png");
} catch (IOException e) {
System.out.println(name + "图片导入失败");
}
return temp;
}
/**
* 取得图片数组
*
* @param image基础图片
* @param framW每一帧宽
* @param framH每一帧高
* @return
*/
public static Image[] getImageArry(Image image, int framW, int framH) {
Image temp[] = null;
int howFramW = image.getWidth() / framW;
int howFramH = image.getHeight() / framH;
temp = new Image[howFramW * howFramH];
for (int i = 0; i < temp.length; i++) {
temp[i] = Image.createImage(image, (i % howFramW) * framW,
(i / howFramW) * framH, framW, framH, 0);
}
return temp;
}
/**
* 矩形碰撞
* @param x第一个矩形坐标
* @param y
* @param w第一个矩形大小
* @param h
* @param x1第二个矩形坐标
* @param y1
* @param w1第二个矩形大小
* @param h1
* @return
*/
public static boolean RectIsP(int x, int y, int w, int h, int x1, int y1,
int w1, int h1) {
if (x + w < x1 || x > x1 + w1 || y + h < y1 || y > y1 + h1) {
return false;
}
return true;
}
/**
* 圆形碰撞
* @param x圆左上角坐标
* @param y
* @param w圆的直径
* @param x1另一个圆左上角坐标
* @param y1
* @param w1另一个圆直径
* @return
*/
public static boolean ArcIsp(int x, int y, int w,
int x1, int y1, int w1) {
int r = w>>1,r1 = w1>>1;
int W = (x+r)-(x1+r1);
int H = (y+r)-(y1+r1);
if((r+r1)*(r+r1) < (W*W+H*H)){
return false;
}else{
return true;
}
}
static Random r = new Random();
/**
* 取得随机数
* @param begin最小值
* @param end最大值
* @return随机数
* OK
*/
static public int next_int(int begin,int end){
int a = 0;
a = begin + (r.nextInt()>>>1)%(end-begin+1);
return a;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -