halo通用改java程序为数字键版教程..doc
文本预览下载声明
halo通用改java程序为数字键版教程
尐豬(5段) 广州
08年11月29日 17:32
选用程序:
QQ2008BETA2-063.jar.难度:容易。
需要的工具:Halo、JavaMagic v0.60a
在这个教程里,我们将看看如何通过键值的修改让程序变为数字键版,这种修改是最省内存,而且也很简单,基本不会出错。我们做一让QQ变为数字键版的过程.
首先, JAVA程序对于按键的定义一般会使用到两个函数,一个是Keypressed(keycode),另一个是 getgameaction(keycode)。而监听按键事件的有三个关键方法:
keyPressed, keyReleased, keyRepeated
我们从英文的字面上看就知道这三个方法实际上是代表的意思是:
有按键按下,有按键松开,有按键重复
我们使用halo进行修改,但由于halo没有提供对方法名字的搜索,那么难道我们要每个class打开看看?
[halo2.20已经支持方法名的搜索,使用方法点击进入]
当然是不用这么麻烦,我们可以利用JavaMagic v0.60a就知道是哪个class在监听按键事件
我们打开JavaMagicv0.60a,接着打开设置-Misc2,去掉“仅显示摘要”前的钩。
再点一下上面的keycode,钩上启用键码转换功能-确定
接着我们处理一下要修改的QQ2008BETA2-063,处理完后看到以下的界面:
JavaMagic每个class分析结果都显示在上面了。这样我们只需要看看哪个class的分析结果有按键说明的就知道这个class就是我们需要修改的了。拖动鼠标,我们发现以下分析结果:
目标文件: dp.class
分析中...
Found: Displayable.getHeight() or Displayable.getWidth()
可能会自动适应屏幕高度
调用了MIDP Canvas类
◇已将MIDP Canvas类替换为CanvaPlus
可能监听了按键事件
◇已处理
数据已写入,修改完毕。
这里提到“可能监听了按键事件”,这就说明dp.Class可能就是我们需要修改的class了。
我们用halo打开QQ2008BETA2-063,然后找到dp.clsss:
鼠标右键打开,点Edit Calss,打开方法后我们看到:
那三个方法就是我们需要修改的了。
现在我们知道了dp.class就是我们需要修改的class了。
通过代码编辑表来编辑keyPressed方法,选中第一行,然后点击 “新建(高级 )”。如图:
记住了,在halo里面插入代码段,都是在当前选中行的上一行插入的。在弹出的窗口中,我们复制粘贴以下代码:
iload_1
bipush 50
if_icmpne 6
bipush 255
istore_1
iload_1
bipush 56
if_icmpne 11
bipush 254
istore_1
iload_1
bipush 52
if_icmpne 16
bipush 253
istore_1
iload_1
bipush 54
if_icmpne 21
bipush 252
istore_1
iload_1
bipush 53
if_icmpne 26
bipush 251
istore_1
iload_1
bipush 55
if_icmpne 31
bipush 52
istore_1
iload_1
bipush 57
if_icmpne 36
bipush 54
istore_1
iload_1
bipush 48
if_icmpne 41
bipush 53
istore_1
iload_1
bipush 248
if_icmpne 46
bipush 48
istore_1
复制粘贴后如图所示:
按确定完成,是不是看到在halo里面已经插入了以上的代码呢,ok,那么我们点保存方法、编译、打包,看图:
这样我们就改好一个方法了。
而接下来的keyRelease和keyRepeated,也是按照上面的方法同样复制代码就可以了。是不是很简单!
三个方法都改好后,qq的数字键为:
2键为↑
4键为←
6键为→
8键为↓
5键为确定键(即摇杠按中间那个确定)
1键和3键没变
7键和9键相当于原版的4和6键
*键为显示或屏蔽不在线的好友
#键为关闭或打开好友列表
0键为收取新信息
C键为皮肤切换
教程就写到这里了,如写得不好还请多多见谅。
显示全部