adingtao11 发表于 2009-4-5 19:40

屏幕分辨率大小的修改教程



所谓暴力移植游戏,就是用WINHEX等16进制修改工具直接编辑游戏的CLASS,要运用这种方法,首先要安装
JAVA反编译工具。16进制编辑工具,中文模拟器,JavaMagic 计算器。
工具齐了,就开始移植,先用JavaMagic修改好键位,然后用模拟器试运行,可以了然后解压,反编译CLASS文件,然后正式开始移植了。
首先CLASS反编译出来的文件直接用CTRL+F搜索draw,其中图片显示的函数是drawImage,文字显示的函数是drawString,搜索draw是确定CLASS文件中是否有需要改的地方,那么找到文件了,比如a.class反编译的a.jad中搜索出drawImage或drawString,就是说里面有决定JAVA文字或图片的函数,其格式通常是:
drawImage(a, 10, 20, 20)drawImage(a, 10, 20, 20)
drawString(b, 100, 208, 20)或drawString("文字", 10, 20, 20)
(还有其他的一些DRAWXXXX函数不一一细说了,都是差不多的,主要是我不甚记得其意义) 10,20代表图片文字开始显示的位置,左上角那点表示0,0前面那个是横 后面那个是纵
其中a和b是被定义图片文字的代码在上面你基本上可以搜索到
a = xx("xxx.png")
b = xxx("文字")
其中不是用中文软件反编译的文字是不能正常显示的。
地方找到了,就要开始修改,用WINHEX等直接打开a.class,
搜索100A(16进制的10)1014(16进制的20)(需要用计算器将10进制改为16进制),搜索前最好确定上文中有多少个10,20这样的组合以确定位置,搜索到了就直接修改,比如改为0,0)
100A1014 —— 10001000,这样就达到修改的目的,而a所代表的图片的起始位置就到了0,0,同样文字也是这样修改所以通常是先用模拟器确定需要修改的图片显示位置,再改到适合位置,不断调试。
还有要说明的是数值显示的方式
通常是
0-5 03-08(通常有一些比较小的数字是这样显示的)
0-127 1000-107F
128-208 110080-1100D0
比如132,你就要搜索110084
方法是这样了,那么下面就谈一下技巧
技巧一:
因为S60的游戏是176*208的,而移植的目的是改为132*176 而很多图片是从中间显示的,比如(88,XX),只要改为(66,XX)就可以显示到中间了,即将1058改为1042,当然改的时候要搜索清楚才改。 还有是有一些可以直接改176,208,成为132,176就可以的,即是1100B01100D0改为1100841100B0
技巧二:
有一些游戏其位置是用字母显示的,比如a+k,b+y等,见到这种情况的话就先看前面有没有写a = xx,b=xx,x=xx,y=xx,应为有一些是自动适应高度长度的,比如a=getlength那就不用改,但是要是没有的话就要改成适当的数字
技巧三:
有一些是集合数字和字母的,字母就看有没有定义个别的数值,比如A=176等,而数字就要改到适当位置。
技巧四:
有一些位置直接修改图片而不用修改文件可以达到移植的目的
晕死下面 还有一帖就是JAVA合并

Mr丶locker 发表于 2009-4-5 20:33



我的两分!

Ruoxia 发表于 2009-4-5 20:44



支持啊

冰魂 发表于 2009-4-5 21:20



不错,支持下

mygzv001 发表于 2009-4-5 23:05



很不错,游戏修改真好用到

渲染离别 发表于 2009-4-6 14:14



路过一下

402397148 发表于 2009-4-10 10:48



穷啊,再顶一下刷钱!

xinrui8668 发表于 2009-4-14 23:48



顶 支持

sjzyw 发表于 2009-4-23 18:49

感谢分享,支持

hanvei 发表于 2009-4-26 09:15

这个改了是干什么的呢
页: [1] 2
查看完整版本: 屏幕分辨率大小的修改教程