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

📄 tools.java

📁 Java程序的一个游戏小Demo 里面包括了许多工具类 用起来很方便
💻 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 + -