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