站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2ME 专题手机游戏修改(7)文本和对话框的修改

手机游戏修改(7)文本和对话框的修改

摘要: 手机游戏修改(7)文本和对话框的修改
手机游戏修改(7)文本和对话框的修改


前面,我们讲了按键的修改。通过我的讲解和您自己的聪明才智,我想,对于处理一般的游戏都没有什么问题了吧。当然,您可能会在实践的过程之中遇到一些奇怪的问题,这是正常的。我需要说明一下,并不是所有游戏的按键都能正常修改的。前面说过,bytecode对于我们修改游戏有着各种各样的约束,有时候,我们不得不放弃修改一款游戏。另外,按键处理指令的寻找也并非一件简单的事情。当然了,经验越丰富,寻找起来就越容易。但有些程序,由于程序开发者故弄玄虚,所以寻找起来非常的困难,这时候,我们就需要花费大量的时间和精力,或者您可以选择放弃。JAVA程序设计知识对于我们的工作还是很有必要的,有时间的话,还是希望大家花点时间学一下JAVA语言。

好了,我们来了解一下文本的修改。

在JAVA程序里面,处理文本的指令为drawString()和drawsubString()。

drawstring()函数(JAVA里面也叫方法)的格式如下:

drawString(String str, int x, int y)

这里的str即是要显示的字符串,x,y指明字符串显示的起始位置坐标,具体的说,x表示第一个字符的左边界,y表示整个字符串的基线位置坐标。

举个直观的例子吧,drawstring("helloworld",20,30),这句话表示以20为左边界,30为基线位置坐标,输出“helloworld”这几个字符。

很显然,我们只要调整这里20、30两个的大小就可以改变输出文本的位置了,同样,我们也可以改变输出文本的内容。至于数字的修改,与前面修改按键的方法差不多,我们就不赘述了。至于文本内容的修改,我们后面会提到。

至于drawsubstring我们这里就不多说了,结构是差不多的,大家上网查一下它的用法,很快就掌握了。

对话框是怎么做出来的呢?相信大家都猜得到。比如我们先用黑色花一个矩形,然后再在这个矩形内以黄色为背景画一个较小的矩形,这就形成了一个框。我们再在黄色区域显示字符,就达到了对话框的效果。

在JAVA里面,画矩形、画线的指令比较多,大家去参考一下相关的JAVA网站吧,我这里只是简单提一下,比如:

drawline(20,30,40,50)

这是一条画线指令,他有四个参数,表示在(20,30)和(40,50)这两个点之间画一条直线。

drawrect(20,30,40,50)

这是一条画空心矩形的指令。它表示以(20,30)为起点,画一个长40,宽50的矩形。

需要注意的是,在JAVA里面,是以左上角为(0,0)点的。

通过上面的简单分析,我们可以看出来,实际上文本和对话框位置的修改也就这些参数的修改,一般情况下,是比较容易修改的。

至于文本内容的修改,我们也简单地说明一下。我们首先编写一个简单的JAVA程序,如下:

public class l {

public void main(String args[]){

String s="新浪网出品";

String sl="紫陌 出品";

}

}

上面就是一个简单的JAVA程序,我们将它保存为l.java文件,并用javac l.java命令进行编译,就会得到一个l.class文件,我们用 UltraEdit打开这个l.class文件,就能看到“新浪网出品”和“紫陌 出品”的十六进制代码了,我们到打开要修改的二进制文件,搜索“新浪网出品”的十六进制代码,并用“紫陌 出品”来代替,那么在游戏里面的字符就会改变了。

好了,就简单说这么多?怎么,你还不明白上面这程序是什么意思?上网查一下吧,学JAVA的第一步,人家就会告诉你这是什么意思了。

你不知道如果在二进制文件里面找“新浪网出品”对应的二进制码?好的,我告诉你,你可以在“新浪网出品”前后加上4个1,“1111新浪网出品1111”,然后再在UltraEdit里面搜索31313131就可以了,两个31313131之间的部分就是“新浪网出品”的二进制代码了。

需要注意的一点是:汉字和标点在二进制里面,占用3个字节,英文字母和符号占用1个字节,也就是说,一个汉字等于3个英文字母。

在修改文本的时候,需要注意用来替换的文本字节数不能超过被替换的文本字节数,比如“新浪网出品”占用15个字节,你就不能用“紫陌哥哥出品”来代替,因为后者占用18个字节。



↑返回目录
前一篇: 手机游戏修改(8)手游修改总结
后一篇: 手机游戏修改(6)switch之lookupswitch