使用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;
}
实际的按键处理的代码可以在线程中实现。
分享到:
相关推荐
在使用J2ME技术开发RPG游戏的过程中,按键处理机制是一个关键部分,它关系到游戏的响应速度和玩家体验。本文将深入探讨如何构建这样一个高效、可移植的按键处理系统。 首先,为了确保游戏对按键的反应快速且灵敏,...
在本篇文档中,我们将探讨如何使用J2ME技术来构建一个RPG(角色扮演游戏)游戏的程序框架。J2ME(Java 2 Micro Edition)是Java平台的一个子集,主要用于移动设备和嵌入式系统。尽管MIDP2.0的Game API提供了一些便利...
**J2ME游戏开发之RPG——源码详解** J2ME(Java 2 Micro Edition)是Java平台的一个子集,主要用于嵌入式设备和移动设备的开发,如早期的智能手机和平板电脑。在J2ME中开发角色扮演游戏(RPG)是一项挑战性的任务,...
对于想要学习如何使用 J2ME 开发 RPG 游戏的初学者来说,以下是一些关键知识点: 1. **J2ME 架构**:理解 J2ME 的架构至关重要,它包括配置(Configurations)和Profile(Profiles)。配置定义了运行环境的基本硬件...
j2me学习笔记【12】——游戏操作Canvas类的up、down、left、right、fire属性使用实例 j2me学习笔记【13】——创建矩形框、圆角矩形以及填充颜色小例子 j2me学习笔记【14】——创建圆弧并填充颜色小例子 j2me学习笔记...
在这个标题中,“j2me编写手机RPG游戏”意味着开发者使用J2ME技术来创建了一款角色扮演游戏(Role-Playing Game,简称RPG)。RPG游戏通常包含丰富的剧情、角色发展和互动元素,玩家在游戏中扮演一个或多个角色,通过...
在本文中,我们将深入探讨如何使用Java 2 Micro Edition (J2ME) 技术来开发角色扮演游戏(RPG)游戏。J2ME是Java平台的一个子集,专门设计用于移动设备和嵌入式系统,使得开发者能够在这些平台上创建丰富的交互式...
总结来说,这个RPG游戏Demo是J2ME技术在游戏开发领域的实际应用,涵盖了基础的游戏机制和移动平台的适配策略。通过对这个Demo的学习和分析,开发者不仅可以了解J2ME的编程环境,还能掌握RPG游戏的关键元素,如地图...
本篇文章将深入探讨一个基于J2ME的RPG(角色扮演游戏)游戏代码,通过解析其中的关键机制,为读者揭示游戏开发的核心原理。 首先,我们要理解J2ME的游戏开发基础。J2ME提供了MIDP(Mobile Information Device ...
J2ME(Java 2 Micro Edition)は、近年来随着各种不同设备、尤其是移动通信设备的飞速发展而诞生的新的开发技术。J2ME 是Java平台的微型版,专门为资源有限的设备设计,具有非常广泛的应用前景。 J2ME 的主要特点是...
j2me游戏开发j2me游戏开发j2me游戏开发j2me游戏开发j2me游戏开发j2me游戏开发j2me游戏开发
【J2ME RPG游戏代码】是一种专为Java Micro Edition(J2ME)平台设计的、基于角色扮演(RPG)的游戏开发源代码。J2ME是Java技术的一个分支,主要用于移动设备和嵌入式系统,如手机、智能手表等。这款RPG游戏代码的...
《征途》是一款基于J2ME技术开发的角色扮演游戏(RPG),专为早期移动设备设计。J2ME,全称为Java Micro Edition,是Java平台的一个子集,主要用于嵌入式设备和移动设备上的应用程序开发,如早期的智能手机和平板...
通过研究这个RPG项目,你不仅可以了解J2ME的开发技术,还可以深入理解游戏设计的基本原理和实践技巧。这对你提升移动游戏开发技能,尤其是针对旧版Java手机的开发,将大有裨益。同时,这也是一次了解早期移动游戏...
这款RPG游戏由作者亲自制作,目标用户主要是对游戏开发感兴趣的初级开发者,对于已经熟悉高级游戏开发技术的专家可能并不适用。 J2ME的开发环境通常包括Java Wireless Toolkit (J2ME WTK) 或者NetBeans等集成开发...
《使用J2ME编程的游戏——俄罗斯方块》 在移动设备和嵌入式系统中,J2ME(Java 2 Micro Edition)是一个广泛使用的平台,用于开发轻量级的应用程序,尤其是游戏。在这个主题中,我们将深入探讨如何利用J2ME来编写...
【描述】:本文将深入探讨如何利用Java Micro Edition (J2ME) 技术来开发手机角色扮演游戏(RPG)。通过对问题的细化处理和清晰的算法展示,为读者提供一个优秀的实例教程。 【标签】:J2ME 【正文】: 在移动设备...
RPG游戏J2ME代码讲解 第6讲 Java应用大赛作品代码讲解 Tales of Youxi <br>1. 真正的RPG游戏“Tales of Youxi” 我们在这一讲来介绍一款名为“Tales of Youxi”的RPG游戏。它制作精良,称得上是真正...
总之,j2ME游戏开发涉及到多方面的技术和技巧,从基础的MIDP API学习,到游戏设计、图形动画和音频处理,再到性能优化和分发部署,每一个环节都是成功开发游戏的关键。通过深入理解和实践,开发者可以创造出丰富的...
疯狂赛车是一款基于J2ME技术的手机游戏,该游戏实现在分辨率为标准的240*320各种手机上运行。玩家的赛车可通过键盘进行控制,而游戏控制的赛车须具有智能性的自动运行,使游戏具有可玩性。而游戏最重要的就是游戏...