2012年6月13日 星期三

Java Game Development(28) - Final Keyboard Input


import java.awt.*;
import java.awt.event.*;


public class KeyTest extends Core implements KeyListener { 是從鍵盤的監聽器
public static void main(String[] args) {
new KeyTest().run();
}
private String mess = "";
//init also call init from super class
public void init() {
super.init(); 調用init()(core java)
Window w = s.getFullScreenWindow();
w.setFocusTraversalKeysEnabled(false); 鍵盤設置普通按鈕
w.addKeyListener(this); 等待鍵盤輸入
mess = "Press escape to exit";
}

//按下的鍵
public void keyPressed(KeyEvent e) { 當有人按鍵調用此方法
int keyCode = e.getKeyCode();
if (keyCode == KeyEvent.VK_ESCAPE) { 當按下ESC
stop(); → 調用stop()方法(in Core.java)
} else {
mess = "Pressed: " + KeyEvent.getKeyText(keyCode); 按哪個鍵
e.consume(); 等待一些鍵入組合(例子:ALT + F2)
}
}

//釋放鍵
public void keyReleased(KeyEvent e) {
int keyCode = e.getKeyCode();
mess = "Released: " + KeyEvent.getKeyText(keyCode);
e.consume();
}
//當按鍵
public void keyTyped(KeyEvent e) {
e.consume();
}
//繪製
public synchronized void draw(Graphics2D g) {
Window w = s.getFullScreenWindow();
g.setColor(w.getBackground());
g.fillRect(0, 0, s.getWidth(), s.getHeight());
g.setColor(w.getForeground());
g.drawString(mess, 30, 30);
}

}

當你運行這個程序:




沒有留言:

張貼留言