📄 keymanager.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 + -