玩过市面上一些java手机游戏,发现很多游戏的按键处理有问题,不是不灵敏,就是不支持多键同时按下.作为一个骨灰级的游戏职业玩家,我实在不能忍受这种不人性化的游戏设计,所以小弟分析了一下具体原因:

1) 如果是用MIDP1.0来处理连续的按键消息:

按照要求,应该利用3个函数keyPressed(int keycode), keyReleased(int keycode), keyRepeated(int keycode)

然后去设置一个boolean的标志位,就可以实现连续按键.很多网上的文章也是这样去写的,大家可以去找找,但是这样其实有一个很严重的问题,

就是按键不灵敏,特别才按下的时候,反应很慢.为什么呢?

因为这是MIDP1.0本身的设计缺陷造成的.在MIDP1.0中,游戏的按键响应和游戏的绘制分别由系统线程和游戏线程来处理,经常会出现按键响应不及时的情况,原来是因为线程不同造成的,知道原因解决办法也容易,就是把keyRepeated(int keycode)里面的内容写到游戏绘制的线程里面去,彻底放弃不用keyRepeated(int keycode)这个函数!!!

经测试,问题解决,按键响应很流畅,也支持2个键同时按下,

2) 如果用MIDP2.0来做

2.0其实已经把按键和游戏绘制做到一个线程里面了,所以按键非常灵敏.如果要完美地处理多键同时按下,就需要自己写比较复杂的按键逻辑,

如果不需要很完美,就用几个if()语句并列就好,效果也不错.

不过WTK2.5的模拟器在MIDP2.0下会有按键BUG,有时候按下就松不了,必须再按一次才可以松开,建议MIDP2.0下换WTK2.3模拟器

综上所述,按键问题主要有2个原因引起.

在MIDP1.0下,一是没有用标志位,实现不了连续按键,二是用了标志位,实现了连续按键,但是却不灵敏,因为线程的原因.

解决办法就是设置标志位,并且把应该写在keyRepeated(int keycode)下的内容全部转移到游戏绘制线程里面去.

完美处理java手机游戏的按键相关推荐

  1. 经典按键java手机游戏_用诺基亚N95体验2G时代的JAVA手游,能正常运行吗?

    5G时代的来临似乎有点快,尽管5G在有些地区还没有完全普及开来,不少人还在用只支持4G.3G的手机,甚至还有在用2G手机.但不可否认的是,手机是否支持5G俨然成为当下消费者买手机的第一关注点. 而这篇 ...

  2. 经典按键java手机游戏_用诺基亚N95体验2G时代的JAVA网游,能正常运行么

    5G时代的来临似乎有点快,尽管5G在有些地区还没有完全普及开来,不少人还在用只支持4G.3G的手机,甚至还有在用2G手机.但不可否认的是,手机是否支持5G俨然成为当下消费者买手机的第一关注点. 而这篇 ...

  3. Java手机游戏开发简明教程 (SunJava开发者认证程序员 郎锐)

    原文发布时间为:2008-07-30 -- 来源于本人的百度文章 [由搬家工具导入] Java手机游戏开发实例简明教程 (SunJava开发者认证程序员 郎锐) 一.手机游戏编写基础 1.手机游戏设计 ...

  4. java手机游戏模拟器下载_Java手机游戏模拟器

    Java手机游戏模拟器主要针对诺基亚S60系列(屏幕176*220)手机以及其他大屏手机(小屏游戏也可运行,但不能全屏显示),是一款非常简单而且实用的JAVA游戏模拟器,可以正常运行绝大部分JAVA手 ...

  5. java游戏健值测试软件,教你使用JavaMagic来改JAVA手机游戏软件键值和改全屏.doc

    教你使用JavaMagic来改JAVA手机游戏软件键值和改全屏 作者:admin????教程来源:百科原创????点击数: 6688????更新时间:2009-6-4 JavaMagic是一款为解决手 ...

  6. java游戏修改文件_教你使用JavaMagic来改JAVA手机游戏软件键值和改全屏

    教你使用JavaMagic来改JAVA手机游戏软件键值和改全屏 作者:admin教程来源:百科原创点击数:6688 更新时间:2009-6-4 JavaMagic是一款为解决手机Java游戏某些兼容性 ...

  7. java手机游戏开发人才短缺

    java手机游戏开发人才短缺 文章来源:乐成数字通信学院   网址:(http://www.ldci.com.cn)     手机游戏的火爆指日可待,但目前,踏入这个领域并非遍地黄金.     手机游 ...

  8. 十大经典Java手机游戏 Top Ten Best Java Mobile Games

    手机上的Java即J2ME(Java 2 Micro Edition)是Sun公司专门用于嵌入式设备的Java软件,开发的软件和游戏可以实现跨平台使用,具有良好的兼容性.当今Java游戏已经有了非常华 ...

  9. 经典按键java手机游戏_随心所动 战无不胜 | 雷蛇骑仕手机游戏手柄评测

    00 玩游戏之前 大家好,我是王小洋.感谢众测吧提供的评测产品. 每次提到手机游戏手柄无非就是两个话题:算外挂吗?手感好吗?算不算外挂这个就见仁见智了,不过好的游戏手柄确实能提高游戏的畅快感,不管是不 ...

最新文章

  1. Qt5.10.1在Windows平台下进行静态编译
  2. 解决linux mysql命令 bash: mysql: command not found 的方法
  3. 转载:2014年流行的手机App小图标界面设计欣赏(1)
  4. tornado学习笔记day01-高并发性能web框架
  5. 释放内容化势能 聚划算《划算8点档》给出新思路
  6. Android 读取Assets资源
  7. c#值类型,引用练习,ref,out
  8. STM32F103与MCGS的通讯
  9. The Django Book(一)
  10. 服务器上的word文件被锁定,Microsoft Word忽略从WebDAV服务器发送的锁定状态
  11. 计算机的软硬件发展进程,计算机的发展史
  12. div点击穿透,CSS属性pointer-events :none;实现护眼模式, 夜间模式遮罩
  13. 恶意程序利用Linksys路由器漏洞在路由器中传播
  14. 纺织erp有哪些,纺织企业为什么要上ERP
  15. 上映半个月,微博热搜近10次,长歌行的魅力到底在哪 ?
  16. three.js 后期处理通道postprocessing
  17. vue简单实现吸顶效果pc
  18. c语言realpath
  19. Oracle分页实现
  20. 翻译英语的软件-免费翻译软件-各种语言互相翻译

热门文章

  1. WSL2下的usb串口设备使用
  2. nand读寿命_Intel也来3D NAND闪存 寿命初定3000P/E
  3. 算法练习--字母移位
  4. HTML个人资料界面
  5. 【Android 教程系列第 25 篇】如何使用 Android Studio 生成 keystore 签名文件
  6. 一个函数只有一个出口
  7. LayUI---数据表格
  8. 30岁改行还来得及吗?
  9. 类与对象实验:定义一个描述学生(Student)基本情况的类,数据成员包括姓名(name)、学号(num)、数学成绩(mathScore)、英语成绩(englishScore)、人数(count)……
  10. 第17章 事件的预防和响应