📄 text.java~9~
字号:
package Game;
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Font;
import javax.microedition.lcdui.Graphics;
/*
* 文本类
* 用于显示场景提示信息、人物对话等等
*/
public class Text
{
MyCanvas mc;
private int textFieldTop; //文本框的顶部 Y 坐标
private int textState; //文本框状态: 0--不显示文本状态 1--向上滑动状态 2--向下滑动状态 3--显示文本状态
private String text[] = {"", "", "", ""}; //文本框内要显示的文字
private boolean canEnd = false;
//--------------------------------------------
// 构造函数
//--------------------------------------------
public Text(MyCanvas mc)
{
this.mc = mc;
reset();
}
//--------------------------------------------
// 重置
//--------------------------------------------
public void reset()
{
textFieldTop = 208;
textState = 0;
canEnd = false;
}
//--------------------------------------------
// 设置要显示的文本
//--------------------------------------------
public void setText(int line, String sText)
{
text[line] = sText;
}
//--------------------------------------------
// 清空所有文本
//--------------------------------------------
public void emptyText()
{
for (int i = 0; i < 4; i++)
{
text[i] = "";
}
}
//--------------------------------------------
// 文本是否显示完毕,如果是,则即将下滑
//--------------------------------------------
public void setCanEnd(boolean b)
{
canEnd = b;
}
//--------------------------------------------
// 启动文本,文本即将上滑
//--------------------------------------------
public void show()
{
textState = 1;
}
//--------------------------------------------
// 获得文本框状态
//--------------------------------------------
public int getTextState()
{
return textState;
}
//--------------------------------------------
// 文本的渲染
//--------------------------------------------
public void paint(Graphics g)
{
if (textState == 0) //如果处于不显示文本状态,则不画
return;
//滑动文本框上沿
if (textState == 1) //当文本框向上滑动时
{
textFieldTop -= 8;
if (textFieldTop < 145) //当上滑到某个地方时转为显示文本状态
textState = 3;
}
else if (textState == 2) //当文本框向下滑动时
{
textFieldTop += 8;
if (textFieldTop >= 208) //当下滑到屏幕以外时转为不显示文本状态
textState = 0;
}
//画出文本框
int tmpX[] = {0, 0, 176, 176}; //定义文本框的区域
int tmpY[] = {textFieldTop, 208, 208, textFieldTop};
//文本框内写字
if (textState == 3) //当处于显示文本状态时才写字
{
g.setColor(255, 255, 255);
for (int i = 0; i < 4; i++)
{
g.drawString(text[i], 5, 145 + 22 * i, 0);
}
}
}
//--------------------------------------------
// 按键响应
//--------------------------------------------
public void keyPressed(int key)
{
if (key == Canvas.FIRE && textState == 3 && canEnd) //如果正在显示文本,按下确定键后文本框下滑
{
textState = 2;
canEnd = false;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -