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

📄 playtext.java

📁 一个完美的applet游戏
💻 JAVA
字号:


import java.awt.*;

/**
 * <p>Title: UFO_Play</p>
 *
 * <p>Description: 基于applet的攻击UFO的小游戏,显示游戏中的文本</p>
 *
 * <p>Copyright: Copyright (c) 2007</p>
 *
 * <p>Company: 鹿児島大学</p>
 *
 * @author 柴 智
 * @version 1.0
 */
public class PlayText {
    // 文本显示的常量
    public static final int CENTER = 1; // 模式: 居中
    public static final int LEFT = 2; //       居左
    public static final int RIGHT = 3; //       居右
    public static final int FREE = 0; //       居于所给的(x,y)位置上

    public static final int NORMAL = 0; // 类型:正常
    public static final int SHADOW = 1; //      带有阴影

    // 文本显示变量
    private int say_pos_y = 0;
    private int say_pos_x = 0;
    private int say_mode = -1;
    private int say_style = -1;
    private int say_margin = 10;
    private Font say_font = null;

    private Font font;
    private Font font_s; //显示字的字体

    private Dimension window_size = null; //窗口尺寸
    private Image buffer = null; // 临时图像,文本缓冲

    private BaseApplet baseApplet;

    public PlayText(BaseApplet baseApplet) {
        this.baseApplet = baseApplet;
        this.window_size = baseApplet.getSize();
        this.setFont(new Font("Helvetica", Font.BOLD, 24));
        this.setFont_s(new Font("Helvetica", Font.BOLD, 14)); //显示字的字体设置
    }

    // 文本显示方法
    public void say(String s, int x, int y) {
        set_say_pos(x, y);
        say(s);
    }

    //文本显示
    public void say(String s) {
        //获取字体的信息
        FontMetrics fm = this.baseApplet.getFontMetrics(say_font);
        // 计算x坐标
        switch (say_mode) {
        case CENTER:
            say_pos_x = (window_size.width - fm.stringWidth(s)) / 2;
            break;
        case RIGHT:
            say_pos_x = window_size.width - fm.stringWidth(s) - say_margin;
            break;
        case LEFT:
        default:
            say_pos_x = say_margin;
            break;
        }
        Graphics bg = buffer.getGraphics();
        bg.setFont(say_font);

        if (say_style == SHADOW) {
            bg.setColor(new Color(150, 150, 150));
            bg.drawString(s, say_pos_x + 2, say_pos_y + 1);
        }
        //在缓冲内书写字符串
        bg.setColor(Color.white);
        bg.drawString(s, say_pos_x, say_pos_y);

        //提升相应的 y坐标值
        say_pos_y += (int) (1.2 * fm.getHeight());

        // 释放一些资源
        bg.dispose();
    }

    //设置显示模式
    public void set_say_mode(int m) {
        say_mode = m;
    }

    //设置显示类型
    public void set_say_style(int s) {
        say_style = s;
    }

    //设置显示所用的字体
    public void set_say_font(Font f) {
        say_font = f;
    }

    //设置显示的空白边缘
    public void set_say_margin(int margin) {
        say_margin = margin;
    }

    //设置显示位置的坐标
    public void set_say_pos(int x, int y) {
        say_pos_x = x;
        say_pos_y = y;
    }

    public PlayText() {
    }

    public BaseApplet getBaseApplet() {
        return baseApplet;
    }

    public Font getFont() {
        return font;
    }

    public Font getFont_s() {
        return font_s;
    }

    public Image getBuffer() {
        return buffer;
    }

    public void setBaseApplet(BaseApplet baseApplet) {
        this.baseApplet = baseApplet;
    }

    public void setFont_s(Font font_s) {
        this.font_s = font_s;
    }

    public void setFont(Font font) {
        this.font = font;
    }

    public void setBuffer(Image buffer) {
        this.buffer = buffer;
    }
}

⌨️ 快捷键说明

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