⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 keymanager.java

📁 j2me游戏引擎 j2me游戏引擎
💻 JAVA
字号:
package cn.org.matrix.gmatrix.gameLab.control;

import javax.microedition.lcdui.game.GameCanvas;
import cn.org.matrix.gmatrix.gameLab.engine.GameModel;
import javax.microedition.lcdui.Canvas;
/**
 * 键盘管理
 * @author cleverpig
 *
 */
public class KeyManager{
	//玩家按键定义(部分键由于多用,所以重值)
	//左
	public static final int LEFT_KEYPRESS=1;
	//右
	public static final int RIGHT_KEYPRESS=2;
	//上
	public static final int UP_KEYPRESS=3;
	//下
	public static final int DOWN_KEYPRESS=4;
	//开火
	public static final int FIRE_KEYPRESS=5;
	//显示下一条信息(用于对话模式)
	public static final int PAGEDOWN_KEYPRESS=4;
	//确认(用于对话模式)
	public static final int OK_KEYPRESS=1;
	//取消(用于对话模式)
	public static final int CANCEL_KEYPRESS=2;
	
	/**
	 * 针对GameCanvas:根据玩家键盘状态值(由GameCanvas的getKeyState方法获得)和游戏模式,返回正确的按键定义值
	 * @param keyState 玩家键盘状态值(由GameCanvas的getKeyState方法获得)
	 * @param gameModel 游戏模式
	 * @return 按键定义值
	 */
	public static int getKeyValue(int keyState,GameModel gameModel){
		int result=0;
		
		switch (gameModel.getModelType()){
		case GameModel.FREEMOVE_MODEL:
			if ((keyState & GameCanvas.LEFT_PRESSED)!=0){
				result=LEFT_KEYPRESS;
			}
			else if ((keyState & GameCanvas.RIGHT_PRESSED)!=0){
				result= RIGHT_KEYPRESS;
			}
			else if ((keyState & GameCanvas.UP_PRESSED)!=0){
				result= UP_KEYPRESS;
			}
			else if ((keyState & GameCanvas.DOWN_PRESSED)!=0){
				result= DOWN_KEYPRESS;
			}
			else if ((keyState & GameCanvas.FIRE_PRESSED)!=0){
				result= FIRE_KEYPRESS;
			}
			break;
		case GameModel.DIALOG_MODEL:
			if ((keyState & GameCanvas.LEFT_PRESSED)!=0){
				result= OK_KEYPRESS;
			}
			else if ((keyState & GameCanvas.RIGHT_PRESSED)!=0){
				result= CANCEL_KEYPRESS;
			}
			else if ((keyState & GameCanvas.DOWN_PRESSED)!=0){
				result= PAGEDOWN_KEYPRESS;
			}
			break;
		}
		return result;
	}
	
	/**
	 * 针对Canvas:根据玩家键盘状态值,返回正确的按键定义值
	 * @param keyCode 玩家键盘状态值
	 * @return 按键定义值
	 */
	public static int getKeyValue(int keyCode){
		int result=0;
		switch(keyCode){
		case Canvas.LEFT:
			result=LEFT_KEYPRESS;
			break;
		case Canvas.RIGHT:
			result=RIGHT_KEYPRESS;
			break;
		case Canvas.UP:
			result= UP_KEYPRESS;
			break;
		case Canvas.DOWN:
			result= DOWN_KEYPRESS;
			break;
		case Canvas.FIRE:
			result= FIRE_KEYPRESS;
			break;
		case Canvas.KEY_NUM1:
			result=OK_KEYPRESS;
			break;
		case Canvas.KEY_NUM3:
			result=CANCEL_KEYPRESS;
			break;
		}
		return result;
	}
}

⌨️ 快捷键说明

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