手机Java游戏要怎么汉化啊??

Python013

手机Java游戏要怎么汉化啊??,第1张

如果有人做过GBA游戏的汉化,一定会觉得,手机游戏的汉化真的是太容易了。简单的说,汉化的工作就是把游戏中所有的文本都替换成中文的。在一个手机游戏里,修改文本大概存在以下3种形式:

图片字。就是指所有以图片形式存在的文本,比如游戏的splash,文字背景或特效等等。替换的方法很简单,找个美工做图,然后直接把原图换掉。有很多过去的游戏都是把这些图片不经过任何处理或者只去掉扩展名放到jar里,替换这些很简单;但是为了减容,现在的很多游戏则是把n张图片打包放在一个文件里,要准确的替换这些文件就有些麻烦了。

首先要弄清文件的储存格式。按程序的画法,可以大体分为drawImage和drawRGB两种形式。

drawImage就是直接把图片打包,不破坏任何图片的格式,drawRGB则是以RGB格式保存图片的象素信息。前者比较容易,除了PNG以外,有的手机还支持GIF,JPG等格式,只要保证图片格式正确就可以了。后者稍微麻烦一些,因为形成的RGB象素信息的数组很大,有的还经过压缩,因此准确的替换会比较困难。

写在程序里的字符串。处理方法也很简单,反编译源文件之后替换相应的字符串就ok了。别问我什么是反编译,这贴里不讲编译原理。再详细的说一下,有2条路,第一就是直接修改class文件。直接把汉字写在源程序里的话,生成的class文件里的汉字字符串应该是标准的utf8编码,一个简单的做法就是自己编译一个写好中文字符串的java文件,再把生成的class文件里面对应的字节copy到原class文件里。第二就是反编译之后生成的java文件,由于扰码的原因,会有地方编译不过,一般是因为反编译后生成的文件有问题。由于扰码工具的不同,存在的问题也不一样。有的地方没有反编译成功,还有的地方使用了伪汇编指令(如goto等),有的构造函数的名称被隐藏等等,还有的扰码工具还会故意增加不合理代码来给反编译设置陷阱,因此就得进行很麻烦的修改。当然改来改去也就是那么几种错误,就是很麻烦。扰码和反编译技术是一魔一道,没有万全之策。总之在没有彻底排除扰码的干扰的时候,不推荐用这种方法。

写在外部数据里的字符串。如果这个游戏的程序结构好的话,所有的字符串都应该是放在外部的某个文件里的。不知道是哪个文件的话,直接把所有文件都用文本编辑器打开查看就能发现储存字符串的文件。很多游戏都是用readUTF()这个通用函数来读取文件中的数据的。因此确保所用的新字符串都是utf-8编码,由于没有原xml文件来重新生成这个数据文件,可能需要通过替换字符串的16进制编码才能正确的替换原来的字符串。一般的说,uft-8每个字符比Unicode大一个字节,因此替换完成的字符串文件可能会比原来要大一点。如果不是utf8格式,也有可能是unicode或其他格式,但如果程序本身都没有考虑到多字节文本的读入,那么除非修改源代码否则是无法解决的。

到此基本上大功告成,替换这些字符串所带来的jar大小和游戏运行时内存的变化可以忽略不计。最后一步,请确认要运行此程序的手机支持中文。

总之,没有自带字库真是一件让人高兴的事。拿到一个GBA rom,第一件事就是破解,但拿到一个手机游戏呢?直接解开查看各文件就是了。做一个GBA汉化,至少需要破解,翻译,美术,而做一个手机汉化呢,文本量不大,图片不多,一个人足够。还有最重要的一点,国内没有一家GBA游戏制作公司,想玩到中文游戏只能靠fans自己动手,但是手机游戏的游戏正相反,国内的制作公司很多。但尽管如此,大部分的中文游戏仍然是纯粹的垃圾,和国外的大牌公司制作的游戏相比真是不堪一击。

《IntelliJ IDEA 2020.1中文破解版》百度网盘资源免费下载:

链接: https://pan.baidu.com/s/1jTnXfDaZEBktKGct12eLYg

?pwd=a97z 提取码: a97z

IntelliJ IDEA 2020.1是由Jetbrains公司而打造的一款Java集成开发环境,该软件界面简洁美观,操作使用方便,拥有智能代码助手、代码自动提示、重构、J2EE支持、Ant、JUnit、CVS整合、代码审查、 创新的GUI设计等特色功能,能够满足用户的编程需求,是一款出色的IDE工具。除此之外,它的每个方面都专门设计用于最大化开发人员的工作效率,强大的静态代码分析和符合人体工程学的设计使开发不仅具有高效性,而且还具有令人愉悦的体验。