?? 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 + -