Java遊戲起步:(二)圖形基礎和顯示文字
來源:互聯網
上載者:User
圖形|顯示 基本概念!
螢幕解析度:以pixel為單位的螢幕面積,如800*600
位深:顯示顏色數量。如8位有256色,16位有65536色
重新整理率:單位HZ
有用的對象!
Window對象:代表螢幕內容,可看作繪圖的畫布,如JFrame就是Window的子類
DisplayMode對象:用來指定螢幕解析度,位深和重新整理率
GraphicsDevice對象:用來改變顯示內容,可看作操縱顯卡的介面,由GraphicsEnvironment對象取得
一個將JFrame放至全屏的例子!
import java.awt.*;
import javax.swing.JFrame;
//先把三個對象準備好
JFrame jf=new JFrame();
DisplayMode displaymode=new DisplayMode(800,600,16,75);
GraphicsDevice device=GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
//JFrame至全屏
device.setFullscreenWindow(jf);
//改變顯示方式
device.setDisplayMode(displaymode);
//退出全屏
device.setFullscreenWindow(null);
//想讓效果更好一點,可以改變JFrame的顯示方式。如:
jf.setUndecorated(true);
jf.setResizable(false);
//另外,一般在改變顯示方式時需要加上必要的判斷和捕獲異常,像這樣:
if (device.isDisplayChangeSupported()){
try {
device.setDisplayMode(displayMode);
}catch (IllegalArgumentException ex) {}
}
//顯示個HelloWorld試試?在一個JFrame裡加上:
public void paint(Graphics g) {
g.drawString("Hello World!", 20, 50);
}
//文字可以用java.awt.Graphics2D類消除鋸齒!
public void paint(Graphics g) {
if(g instanceof Graphics2D){
Graphics2D g2d=(Graphics2D)g;//Graphics2D是Graphics的子類
//消除鋸齒,繪製品質等可參考RenderingHints類的文檔!
g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
}
g.drawString("Hello World!", 20, 50);
}
差不多了,下篇寫繪製圖形!