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

📄 text.java~9~

📁 这是个功能比较多的RPG 但是也存在比较多的BUG 有待完善中
💻 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 + -