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

📄 textsprite.java

📁 本代码为java编写的泡泡龙游戏
💻 JAVA
字号:

import java.awt.Point;
import java.awt.Rectangle;
import java.awt.Graphics;

//代表一个可操作、可显示的文字信息
public class TextSprite extends Sprite
{
	//保存可用的字体
	private GameFont font;
	//保存可显示的文本信息
	private String text;
	//保存能显示的最后一个字符的下标
	private int lastCharacter;
	
	public TextSprite(Rectangle spriteArea, GameFont font, String initialText)
	{
		super(spriteArea);
		
		this.font = font;
		this.text = initialText.toLowerCase();
		this.lastCharacter = findLastCharacter(text);
	}
	
	//查找能显示的最后一个字符的下标
	private int findLastCharacter(String text)
	{
		int fitsIn = getSpriteArea().width;
		int currentSize = 0;

		char[] array = text.toCharArray();
		
		for (int i=0 ; i<array.length ; i++)
		{                    
			currentSize += font.charSize(array[i])+font.SEPARATOR_WIDTH;
			
			if (currentSize >= fitsIn)
			{
				return i;
			}
		}
		
		return array.length-1;
	}
	
	public String getText()
	{
		return text;
	}	
	
	public GameFont getFont()
	{
		return font;
	}
	
	//在未尾增加一个字符
	public void addCharacter(char c)
	{
		text += String.valueOf(c).toLowerCase();
		lastCharacter = findLastCharacter(text);
	}
	//从未尾删除一个字符
	public void removeLastChar()
	{
		text = text.substring(0, text.length()-1);
		lastCharacter = findLastCharacter(text);
		forceRefresh();
	}
	
	//从开始处显示所有的文字信息,注意:每个文字是当作一个图片画出来的
	public void paint(Graphics g, GameApplet applet)
	{
		int currentPosition = getSpritePosition().x;
		
		for (int i=0 ; i<=lastCharacter ; i++)
		{
			g.setClip(getSpriteArea());
			currentPosition += font.paintChar(text.charAt(i), g, new Point(currentPosition, getSpritePosition().y));
		}
	}
}

⌨️ 快捷键说明

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