font.java

来自「j2me 是男人就撑20秒源代码 我」· Java 代码 · 共 47 行

JAVA
47
字号
package fly;

import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.*;

public class Font {//字体类
	Sprite sprite;//Sprite
	int width,height;//每个字符的长和宽
	int[] charhash;//存储1-127个常见字符在sprite的frameseq中的位置
	Graphics g;

	public Font(Graphics g, Image img,int width,int height,char[] chars){//字体类构造函数
		this.g=g;
		sprite=new Sprite(img,width,height);
		this.width=width;
		this.height=height;
		charhash=new int[128];

	    for(int i=0;i<charhash.length;i++){
			charhash[i]=-1;//没有代表此字符的图片
		}
		Character c;
		for(int i=0;i<chars.length;i++){
			c=new Character(chars[i]);
			charhash[c.hashCode()]=i;
		}
	}

	public void drawChar(char ch,int x,int y){//输出字符图像
		Character c=new Character(ch);
		int hashcode=c.hashCode();
		sprite.setPosition(x,y);
		
		if(hashcode>=0){
			sprite.setFrame(charhash[hashcode]);
			sprite.paint(g);
		}
	}

	public void drawString(String str,int x,int y){//输出字符串
		int length=str.length();

		for(int i=0;i<length;i++){
			drawChar(str.charAt(i),x+width*i,y);
		}
	}
}//Font

⌨️ 快捷键说明

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