?? text.java
字號:
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 == mc.FIRE && textState == 3 && canEnd) //如果正在顯示文本,按下確定鍵后文本框下滑
{
textState = 2;
canEnd = false;
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -