2012年6月13日 星期三

Java Game Development(30) - Final Mouse Input


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

public class MouseInput extends Core implements KeyListener, MouseMotionListener, MouseListener, MouseWheelListener {

public static void main(String[] args) {
new MouseInput().run();
}

private String mess = "";

//init
public void init() {
super.init();
Window w = s.getFullScreenWindow();
w.addMouseListener(this); 當鼠標點擊
w.addMouseMotionListener(this); 當鼠標拖動和移動
w.addMouseWheelListener(this); 內置鼠標的方法
w.addKeyListener(this);
}
//繪製方法
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);
}
//鼠標監聽器
public void mousePressed(MouseEvent e) {
mess = "You pressed down the mouse";
}

public void mouseReleased(MouseEvent e) {
mess = "You released the mouse";
}

public void mouseClicked(MouseEvent e) {}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}

//鼠標移動界面
public void mouseDragged(MouseEvent e) {
mess = "You're dragging the mouse";
}

public void mouseMoved(MouseEvent e) {
mess = "You're moving the mouse";
}

//鼠標滾輪界面
public void mouseWheelMoved(MouseWheelEvent e) {
mess = "You're moving the mouse wheel";
}

//按下的鍵
public void keyPressed(KeyEvent e) {
int keyCode = e.getKeyCode();
if (keyCode == KeyEvent.VK_ESCAPE) {
stop();
} else {
mess = "Pressed: " + KeyEvent.getKeyText(keyCode);
e.consume();
}
}

//釋放鍵
public void keyReleased(KeyEvent e) {
int keyCode = e.getKeyCode();
mess = "Released: " + KeyEvent.getKeyText(keyCode);
e.consume();
}

public void keyTyped(KeyEvent e) {
e.consume();
}
}


當運行這個程序,拖動或移動鼠標,消息將顯示在屏幕上:



沒有留言:

張貼留言