亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? fontwriter.java

?? 一款基于java 的賽車類游戲 一款基于java 的賽車類游戲
?? JAVA
字號:
/*
 * Created on 2005-02-25
 * 
 * Copyright (c) 2005 nanoGames. All Rights Reserved.
 *  
 */

//package com.nano.KangooJumper;

import javax.microedition.lcdui.*;

/**
 * @author plumkawka FontWriter
 */
public class FontWriter
{

	public final static int		SMALL					= 1;
	public final static int		SMALL_OUTLINE			= 2;
	public final static int		NORMAL					= 3;
	public final static int		NORMAL_OUTLINE			= 4;
	public final static int		CHARS_IN_FONT			= 46;

	public int					kerning = 0;
	private Image				m_Image;
	private int					m_GlyphHeight;
	private byte[]				m_GlyphWidthTab;
	private int					m_MaxGlyphWidth;
	private final static byte[]	m_NormalGlyphWidthTab	= { 6, 6, 6, 6, 6, 6, 6, 6, 6, 3, 6, 6, 5, 7, 6, 6, 6, 6, 6, 6, 7, 6,
			7, 7, 7, 7, 6, 6, 4, 6, 6, 6, 6, 6, 6, 6, 6, 3, 4, 7, 3, 6, 6, 7, 4, 3, 5, 8 };



	public FontWriter(int type, int font)
	{
		// load image
		m_Image = Utils.LoadImage(font);

		switch (type)
		{
			case NORMAL_OUTLINE:
				m_GlyphWidthTab = m_NormalGlyphWidthTab;
			break;
		}

		m_GlyphHeight = m_Image.getHeight() / CHARS_IN_FONT;

		// find max glyph width
		for (int lp = 0; lp < m_GlyphWidthTab.length; lp++)
		{
			if (m_GlyphWidthTab[lp] > m_MaxGlyphWidth)
				m_MaxGlyphWidth = m_GlyphWidthTab[lp];
		}
	}



	public FontWriter(int type, int font, int pal)
	{

		switch (type)
		{
			case NORMAL_OUTLINE:
				m_GlyphWidthTab = m_NormalGlyphWidthTab;
			break;
		}

		// load image and remap palette
		PNGLoader loader = new PNGLoader(font, pal, 2);
		m_Image = loader.getImage();

		m_GlyphHeight = m_Image.getHeight() / CHARS_IN_FONT;

		// find max glyph width
		for (int lp = 0; lp < m_GlyphWidthTab.length; lp++)
		{
			if (m_GlyphWidthTab[lp] > m_MaxGlyphWidth)
				m_MaxGlyphWidth = m_GlyphWidthTab[lp];
		}
	}

	public FontWriter(int type, int font, short[] pal)
	{

		switch (type)
		{
			case NORMAL_OUTLINE:
				m_GlyphWidthTab = m_NormalGlyphWidthTab;
			break;
		}

		// load image and remap palette
		PNGLoader loader = new PNGLoader(font);
		loader.remapPalette(pal, 0, 4);
		m_Image = loader.getImage();

		m_GlyphHeight = m_Image.getHeight() / CHARS_IN_FONT;

		// find max glyph width
		for (int lp = 0; lp < m_GlyphWidthTab.length; lp++)
		{
			if (m_GlyphWidthTab[lp] > m_MaxGlyphWidth)
				m_MaxGlyphWidth = m_GlyphWidthTab[lp];
		}
	}
	


	public static int charOffset(char ch)
	{
		if (ch == ' ')
			return 0;
		else if (ch == '.')
			return 37;
		else if (ch == ':')
			return 40;
		else if (ch == '?')
			return 42;
		else if (ch == '\'')
			return 44;
		else if (ch == '!')
			return 45;
		else if (ch == '\\')
			return 46;
		else if (ch == '-')
			return 47;
		else if (ch == '|')
			return 48;
		else if (ch == ',')
			return 39;
		else if (ch >= 'A' && ch <= 'Z')
			return ch - 'A' + 1;
		else if (ch >= '0' && ch <= '9')
			return ch - '0' + 27;
		return 0;
	}



	public int strLen(String str)
	{
		int index = str.length();
		int len = 0;

		while (index > 0)
		{
			index--;
			len += (m_GlyphWidthTab[charOffset(str.charAt(index))] + kerning);
		}
		return len;
	}



	public void drawText(Graphics g, String str, int x, int y)
	{
		if (str == null)
			return;

		g.setClip(x, y, strLen(str), m_GlyphHeight);

		int len = str.length();
		int index = 0;

		while (index < len)
		{
			int offs = charOffset(str.charAt(index));

			g.drawImage(m_Image, x, y - offs * m_GlyphHeight, Graphics.LEFT | Graphics.TOP);

			x += (m_GlyphWidthTab[offs] + kerning);
			index++;
		}
	}



	public void drawTextCentered(Graphics g, String str, int x, int y)
	{
		drawText(g, str, x - (strLen(str) >> 1), y - (m_GlyphHeight >> 1));
	}



	public void drawChar(Graphics g, char ch, int x, int y, boolean centered)
	{
		int offs = charOffset(ch);

		// align to center if needed
		if (centered == true)
			x -= m_GlyphWidthTab[offs] >> 1;

		g.setClip(x, y, m_GlyphWidthTab[offs], m_GlyphHeight);

		g.drawImage(m_Image, x, y - offs * m_GlyphHeight, Graphics.LEFT | Graphics.TOP);
	}



	public Image createImageWithText(String str)
	{
		int width = strLen(str);
		Image img = Image.createImage(width, m_GlyphHeight);

		drawText(img.getGraphics(), str, 0, 0);
		return img;
	}



	public int getHeight()
	{
		return m_GlyphHeight;
	}



	public int getWidest()
	{
		return m_MaxGlyphWidth;
	}



	/**
	 * @param text
	 * @param index
	 * @param last
	 * @return
	 */
	public int strLen(char[] text, int start, int stop)
	{
		int len = 0;

		while (start < stop)
		{
			len += (m_GlyphWidthTab[charOffset(text[start])] + kerning);
			start++;
		}

		return len;
	}

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
青青青伊人色综合久久| 91在线视频免费91| 国产精品66部| 色琪琪一区二区三区亚洲区| 成人免费看片app下载| 在线视频你懂得一区二区三区| 在线欧美日韩国产| 2022国产精品视频| 亚洲福利视频一区二区| 亚洲一区二区三区四区五区中文| 日韩av一区二区三区四区| 国产在线精品一区二区夜色| 国产成人自拍网| 欧美日韩免费一区二区三区视频| 日韩美女在线视频| 亚洲视频在线一区| 青草av.久久免费一区| 成a人片国产精品| 欧美一区二区三区视频在线| 国产区在线观看成人精品| 亚洲成人午夜影院| 成人高清视频在线| 日韩女优毛片在线| 亚洲成人激情av| 91视视频在线直接观看在线看网页在线看 | 国产精品一品二品| 99精品视频一区二区| 欧美v日韩v国产v| 亚洲成人第一页| 国产激情一区二区三区四区 | 欧美午夜片在线看| 亚洲欧洲日韩女同| 久久精品国产亚洲5555| 欧美日韩精品一区视频| 国产精品久久夜| 男女激情视频一区| 欧美日韩精品福利| 一区二区久久久久| 91一区二区在线| 久久网站热最新地址| 日韩不卡免费视频| 91精品国产91热久久久做人人| 亚洲第一久久影院| 欧美综合一区二区| 亚洲午夜日本在线观看| 99精品欧美一区二区蜜桃免费| 久久久久久电影| 国产在线一区观看| 久久免费美女视频| 国产一区福利在线| 久久色中文字幕| 99精品国产91久久久久久| 一区二区三区高清| 欧美一级二级在线观看| 国产一区二区在线影院| 国产精品卡一卡二卡三| 99视频精品免费视频| 亚洲一区二区三区四区在线| 日韩视频在线观看一区二区| 国产高清久久久久| 尤物视频一区二区| 日韩视频在线一区二区| 豆国产96在线|亚洲| 亚洲一线二线三线久久久| 欧美一区二区三区四区五区| 国产精品羞羞答答xxdd| 亚洲黄色片在线观看| 精品美女一区二区| 色婷婷av一区二区三区软件| 蜜臀av一区二区在线观看| 国产精品午夜电影| 欧美日本乱大交xxxxx| 成人一区在线看| 日韩精品一二三| 国产精品国产三级国产aⅴ中文 | 日日骚欧美日韩| 国产精品免费久久久久| 欧美高清视频www夜色资源网| 国产一区二区三区最好精华液| 亚洲另类一区二区| 久久久99免费| 91麻豆精品国产91久久久久久| 国产**成人网毛片九色| 青青草视频一区| 亚洲一区成人在线| 中文字幕欧美激情| 精品国产乱码久久久久久牛牛| 色综合久久久久久久| 国产精品88av| 另类小说视频一区二区| 亚洲成年人影院| 伊人一区二区三区| 国产精品素人视频| 久久久影视传媒| 日韩三级伦理片妻子的秘密按摩| 色偷偷88欧美精品久久久| 国产麻豆视频一区| 美腿丝袜在线亚洲一区| 午夜av一区二区| 亚洲大片一区二区三区| 亚洲图片你懂的| 中文字幕亚洲一区二区av在线| 欧美精品一区在线观看| 日韩欧美国产精品一区| 日韩女优av电影| 日韩亚洲欧美一区| 91 com成人网| 这里只有精品免费| 欧美一区二区啪啪| 69久久夜色精品国产69蝌蚪网| 在线区一区二视频| 色婷婷av一区二区三区gif| 99久久精品国产毛片| 99精品国产热久久91蜜凸| 99re热视频这里只精品| 91美女片黄在线观看91美女| 91在线精品秘密一区二区| 97se狠狠狠综合亚洲狠狠| 99re成人在线| 91精彩视频在线| 在线观看91av| 欧美大片在线观看| 久久综合色婷婷| 国产精品欧美一区喷水| 国产精品久久久久天堂| 亚洲女爱视频在线| 亚洲一区免费在线观看| 亚洲bdsm女犯bdsm网站| 奇米色一区二区| 国产精品一区二区三区99| 成人免费毛片片v| 欧洲色大大久久| 91精品免费在线| 久久网这里都是精品| 国产精品国产三级国产aⅴ入口| 亚洲色欲色欲www| 日韩激情一二三区| 国产中文字幕精品| thepron国产精品| 欧美中文字幕久久| 91精品婷婷国产综合久久竹菊| 欧美xxxx在线观看| 国产精品美女视频| 亚洲综合一区二区精品导航| 亚洲成人午夜电影| 国产成人综合自拍| 欧美日本一区二区三区四区| 久久综合精品国产一区二区三区| 国产精品免费aⅴ片在线观看| 亚洲一区二区三区中文字幕在线| 日本午夜精品一区二区三区电影| 国产精一区二区三区| 日本韩国一区二区三区| 日韩情涩欧美日韩视频| 国产精品久久久久久久久免费桃花 | 欧美成人aa大片| 国产精品天干天干在线综合| 亚洲成va人在线观看| 国产99久久精品| 日韩视频在线你懂得| 一区在线观看视频| 久久精品国产第一区二区三区| 91浏览器打开| 久久亚洲私人国产精品va媚药| 艳妇臀荡乳欲伦亚洲一区| 韩国v欧美v日本v亚洲v| 在线视频综合导航| 中文幕一区二区三区久久蜜桃| 婷婷久久综合九色国产成人| www.成人网.com| 久久嫩草精品久久久久| 亚洲成人资源网| 日本高清不卡aⅴ免费网站| 精品国产百合女同互慰| 亚洲第一福利一区| 97se狠狠狠综合亚洲狠狠| 久久丝袜美腿综合| 精品亚洲欧美一区| 91精品欧美福利在线观看| 亚洲精品国产无天堂网2021| 国产69精品久久777的优势| 精品三级在线看| 视频一区二区三区入口| 欧美在线一二三| 亚洲精选视频免费看| 成人综合婷婷国产精品久久蜜臀| 日韩欧美一区二区久久婷婷| 亚洲丰满少妇videoshd| 色婷婷激情久久| 国产精品久久久久久久岛一牛影视| 免费观看91视频大全| 狠狠色综合日日| 91老司机福利 在线| 精品国产乱码久久久久久浪潮 | 国产很黄免费观看久久| 欧美一区三区四区| 午夜影视日本亚洲欧洲精品| www.av亚洲| 亚洲视频1区2区| 在线一区二区三区四区五区|