📄 textsprite.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 + -