?? explosion.java
字號:
import java.awt.Graphics;
/**
* <p>Title: UFO_Play</p>
*
* <p>Description: 基于applet的攻擊UFO的小游戲中的UFO爆炸類</p>
*
* <p>Copyright: Copyright (c) 2007</p>
*
* <p>Company: 鹿児島大學</p>
*
* @author 柴 智
* @version 1.0
*/
public class Explosion extends Piece {
//Explosion類的構造函數
public Explosion(UFO_Canvas ufo_canvas, int x, int y) {
//爆炸對象屬性值的初始化
super(ufo_canvas);
w = 30;
h = 30;
px = opx = x;
py = opy = y;
active = true;
img = ufo_canvas.getMissile_explosion();
}
int seq = 0;
int seq2 = 0;
//爆炸對象的繪制函數
public void draw() {
//設置繪制的區域
set_draw_rectangles(ufo_canvas.getPaint_area(), ufo_canvas.getNew_area());
// 清除舊的圖像
Graphics bkd_g = ufo_canvas.getBackdrop().getGraphics();
bkd_g.clipRect(ufo_canvas.getPaint_area().x, ufo_canvas.getPaint_area().y, w, h);
bkd_g.drawImage(ufo_canvas.getBgimg(), 0, 0, ufo_canvas.getWindow_size().width,
ufo_canvas.getWindow_size().height, ufo_canvas.getBaseApplet());
// 由于爆炸用的圖片是一個序列圖,要進行剪切再使用
//根據seq2的值選擇相應的部分
if ((++seq2 % 4) == 0) {
seq = ++seq % 5;
}
// 爆炸圖最后的部分顯示后,將active屬性值設為false,并將其清除
if (seq == 4) {
active = false;
}
// 將新的區域繪制到緩沖中
bkd_g.clipRect(ufo_canvas.getNew_area().x, ufo_canvas.getNew_area().y, w, h);
bkd_g.drawImage(img, ufo_canvas.getNew_area().x - w * seq, ufo_canvas.getNew_area().y, ufo_canvas.getBaseApplet());
bkd_g.dispose();
// 將變化繪制到緩沖中
Graphics bg = ufo_canvas.getBuffer().getGraphics();
bg.clipRect(ufo_canvas.getNew_area().x, ufo_canvas.getNew_area().y, w, h);
bg.drawImage(ufo_canvas.getBackdrop(), 0, 0, ufo_canvas.getBaseApplet());
bg.dispose();
// 將緩沖繪制到屏幕上
Graphics g = ufo_canvas.getBaseApplet().getGraphics();
g.clipRect(ufo_canvas.getPaint_area().x, ufo_canvas.getPaint_area().y, ufo_canvas.getPaint_area().width,
ufo_canvas.getPaint_area().height);
g.drawImage(ufo_canvas.getBuffer(), 0, 0, ufo_canvas.getBaseApplet());
g.dispose();
}
//爆炸對象的清除
public void erase() {
//設置繪制的區域
set_draw_rectangles(ufo_canvas.getPaint_area(), ufo_canvas.getNew_area());
// 清除舊的圖像
Graphics bkd_g = ufo_canvas.getBackdrop().getGraphics();
bkd_g.clipRect(ufo_canvas.getPaint_area().x, ufo_canvas.getPaint_area().y, w, h);
bkd_g.drawImage(ufo_canvas.getBgimg(), 0, 0, ufo_canvas.getWindow_size().width,
ufo_canvas.getWindow_size().height, ufo_canvas.getBaseApplet());
bkd_g.dispose();
// 對緩沖和屏幕執行同樣的操作
super.erase();
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -