keystack.java

来自「Java ME中对多个按键同时处理的例子。」· Java 代码 · 共 63 行

JAVA
63
字号


import java.util.Vector;


public class KeyStack {

	/** 保存被按下的键 */
	private static Vector keys = new Vector();

	private static int keyStates = 0;

	private static boolean isLoadOver;

	// 按下鍵后的处理,往数组里添加
	private void addKey(int keyCode) {

		keyCode = keyCode < 0 ? MainCanvas.getMainCanvas().getGameAction(
				keyCode) : keyCode;

		keys.addElement(keyCode + "");
		keyStates += (1 << keyCode);
	}

	// 松开键的处理,从数组中去除
	private void removeKey(int keyCode) {
		keyCode = keyCode < 0 ? MainCanvas.getMainCanvas().getGameAction(
				keyCode) : keyCode;

		keys.removeElement(keyCode + "");
		keyStates -= (1 << keyCode);
	}

	public int getKeyStates() {
		return keyStates;
	}

	public void keyPressed(int keyCode) {
		this.addKey(keyCode);
	}

	public void keyReleased(int keyCode) {
		this.removeKey(keyCode);
	}

	public static boolean isEmpty() {
		return keys.size() == 0;
	}

	public static boolean isLoadOver() {
		return isLoadOver;
	}

	public static void setLoadOver(boolean b) {
		isLoadOver = b;
	}

	public static void removeAll(int keyCode) {
		while (keys.removeElement(keyCode + ""))
			;
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?