使用J2ME技术开发RPG游戏(二)——按键处理机制
2007-12-28 20:33
363 查看
使用J2ME技术开发RPG游戏(二)——按键处理机制作者:陈跃峰出自:http://blog.csdn.net/mailbomb 在游戏中,按键处理机制也需要小心的实现,这里就介绍一种实用的按键处理机制。 在实际的游戏中,一般为了按键灵敏,我们一般不会直接在keyPressed或keyReleased方法内部书写逻辑的代码,而只是在这些方法内部记录或清除按键的记录,而把实际的处理放在线程中进行。这个是本机制中采用的方式。 而且不同手机的按键键值存在不同,为了方便移植,我们把按键转换成自己定义的数值,然后在程序中使用自定义的值进行处理。 该机制中最核心的变量为; private int keyStates; 用该变量中的一个二进制位来代表一种按键是否按下,如果按下为1,否则为0。每个按键自己进行了定义,定义的代码如下: /**向上*/ private final int KEY_UP = 1; /**向下*/ private final int KEY_DOWN = 1 << 1; /**向右*/ private final int KEY_RIGHT = 1 << 2; /**向左*/ private final int KEY_LEFT = 1 << 3; /**5键*/ private final int KEY_FIRE = 1 << 4; /**左软键*/ private final int KEY_LEFT_SOFT = 1 << 5; /**右软键*/ private final int UP = 1 << 6; /**特殊用途按键,例如0键*/ private final int KEY_ZERO = 1 << 7; 转换按键键值的方法根据手机型号不同,也存在很多的不同,下面是WTK模拟器的实现代码: /** * 将物理键值转换为自定义键值 * 说明:该方法和机型相关,下面是WTK的实现 * @param keyCode 物理键值 * @return 自定义键值 */ private int convertKey(int keyCode) { switch (keyCode) { case -6: return KEY_LEFT_SOFT; case -7: return KEY_RIGHT_SOFT; case Canvas.KEY_NUM2: case -1: return KEY_UP; case Canvas.KEY_NUM4: case -3: return KEY_LEFT; case Canvas.KEY_NUM6: case -4: return KEY_RIGHT; case Canvas.KEY_NUM8: case -2: return KEY_DOWN; case Canvas.KEY_NUM0: return KEY_ZERO; } return 0; } 按键按下时,首先把物理按键的键值转换为自定义的键值,然后把按键信息保存到按键状态变量keyStates中,保存时采用的是位运算符位或实现的。实现代码如下: public void keyPressed(int keyCode) { //转换按键 int key = convertKey(keyCode); //保存按键 keyStates |= key; } 按键释放时,和按键按下类似,首先转换键值,然后清除按键信息。清除时把按键状态取反,然后与keyStates位与即可。实现代码如下: public void keyReleased(int keyCode) { //转换按键 int key = convertKey(keyCode); //清除按键 keyStates &= ~key; } 在界面切换时,需要把按键状态清空,这样只需要把keyStates清零即可。实现代码如下: /** * 清除按键 */ private void clearKey(){ keyStates = 0; } 实际的按键处理的代码可以在线程中实现。
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1492291
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1492291
相关文章推荐
- 使用J2ME技术开发RPG游戏(二)——按键处理机制
- 使用J2ME技术开发RPG游戏(二)——按键处理机制
- 使用J2ME技术开发RPG游戏(二)——按键处理机制
- 使用J2ME技术开发RPG游戏(二)——按键处理机制
- 使用J2ME技术开发RPG游戏(二)——按键处理机制
- 使用J2ME技术开发RPG游戏(二)——按键处理机制
- 使用J2ME技术开发RPG游戏(二)——按键处理机制
- 使用J2ME技术开发RPG游戏(二)——按键处理机制
- 使用J2ME技术开发RPG游戏(二)——按键处理机制
- 使用J2ME技术开发RPG游戏(二)——按键处理机制
- 使用J2ME技术开发RPG游戏(二)——按键处理机制
- 使用J2ME技术开发RPG游戏(二)——按键处理机制
- 使用J2ME技术开发RPG游戏(一)——程序框架
- 使用J2ME技术开发RPG游戏(一)——程序框架
- 使用J2ME技术开发RPG游戏(一)——程序框架
- 使用J2ME技术开发RPG游戏(一)——程序框架
- 使用J2ME技术开发RPG游戏(一)——程序框架
- 使用J2ME技术开发RPG游戏(一)——程序框架
- 使用J2ME技术开发RPG游戏(一)——程序框架
- 使用J2ME技术开发RPG游戏