《教你使用JavaMagic来改JAVA手机游戏软件键值和改全屏》由会员分享,可在线阅读,更多相关《教你使用JavaMagic来改JAVA手机游戏软件键值和改全屏(13页珍藏版)》请在金锄头文库上搜索。
1、教你使用 JavaMagic 来改 JAVA 手机游戏软件键值和改全屏作者:admin 教程来源:百科原创 点击数: 6688 更新时间:2009-6-4JavaMagic 是一款为解决手机 Java 游戏某些兼容性问题而设计的软件。本文以 JavaMagic 0.53 为例,介绍如何用 JavaMagic 对不兼容的 Java 游戏进行处理,使之能较好地运行在您的手机上。软件下载:JavaMagic 点此下载手机键位键值测试工具 点此下载目前一般手机(我是指非 Nokia 手机)与 Java 游戏的主要矛盾有一下几点:一,游戏不能全屏运行。例如,很多游戏是以 128x128 的分辨率为标准设
2、计的。而有的手机,其屏幕分辨率虽然也为 128x128,但在运行游戏时,由于游戏没有以全屏方式运行,画面一部分会被按键提示栏之类的物体遮挡,十分影响心情。当然,如果您的手机分辨率大于 128x128,比如 128x160,就不会存在这样的烦恼。但有的游戏被设计成能够自动适应屏幕分辩率,让这些游戏在 128x160 的手机上以非全屏的 128x128 尺寸运行,岂不是很委屈它们?所以,如果可以的话,全屏运行总是好的二,游戏是 Nokia 专用的。目前很多游戏都是只有 Nokia 的版本,懒惰的厂商偶尔才会大发慈悲,发行对应其它手机的版本。由于 Nokia 的游戏一般都使用了 Nokia 专用的
3、API,不能直接放在非 Nokia 手机上运行,直接导致我们对 Nokia 这厮又爱又恨。幸好劳动人民的智慧是无限的,某位我不知名的神仙写了一个 Nokia API 的模拟包,解决了这一难题。这就是在网上广为流传的那个俗称com 文件夹,com包 的物体。但是这个模拟包只是实现了一些最主要的基本功能,还不够完善,仍然存在一定兼容性问题。我知道除了我,还有人正在尝试去完善它。希望以后我们能看到更优秀的模拟包出现在网上。三,游戏按键不兼容。虽然只要游戏厂商愿意,他们可以做出在几乎任何一部手机上都不出现按键不兼容问题的游戏,但在残酷的现实中大量的游戏都是根据 KeyCode(键值、键码)这种跟设备有
4、关的东西来识别按键的。而不同品牌的手机,甚至相同品牌的不同系列的手机,除了数字键(包括*和# 键)的 KeyCode 是一样的,其它按键比如左右软键、方向键,其对应的 KeyCode 几乎都是不同的。因此,在玩游戏时按了“右”,可能游戏会认为你按的是“下”;或者游戏需要你按“右软键”,可是你把所有键都按遍了游戏都不鸟你。已经有一些先进分子们(这些“手机游戏修改群”里的大大们十分活跃,相信不少人都见过)觉得这种情况难以忍受,于是研究出了解决方法改游戏代码,把游戏里面使用到键值的地方通通改成我们自己手机的键值。无奈这种修改方法本质上是一种繁重的体力劳动,容易导致头晕眼花和一定程度的神经衰弱,所以我
5、尝试了不到 24 小时就彻底地溃败了,转而研究其它的修改方法,并开始写 JavaMagic 这个软件。而且这种方式还有一定的局限性,更重要的是它不适合一般玩家。四,字体问题。这点国产游戏尤为突出。很多游戏大量使用小字体,十分抠门。然而我们的手机厂商更加抠门,直接把小字体的支持阉割掉了。阉割得比较有人性的,会统一用一种字体来代替大、小字体,这样至少在游戏里还能看到字。而阉割得比较彻底的,就干脆就什么都不显示了。这个问题也可以通过修改游戏代码解决,但同样比较麻烦。 五,语言问题。呃这个是游戏与游戏玩者的矛盾,不在本软件的讨论范围如果您的手机支持 MIDP 2.0,那么恭喜,您可以试一下 JavaM
6、agic,也许它能解决您的问题。其实那些 Java 游戏还是很好骗的,JavaMagic 对它们使用了一些巧妙的小伎俩,使之能比较正常地在您的手机上运行。JavaMagic 的界面比较简单:如果是第一次运行,应该先点击“设置” ,针对您的手机重新设置 JavaMagic这是设置画面(嗯,我承认它看起来是复杂了点,而且随着版本的更新变得越来越复杂): 先讨论与全屏问题有关的设置。首先,您需要了解您手机的屏幕分辨率,并将其填入“分辨率指定”中。 (如果您的手机分辨率是 128x116, 128x128, 128x160 中的一种,可以直接点击对应的按键来快速设定。 )也许有的同学看到这里已经被“分
7、辨率”这个反复出现的字眼折磨得失去继续往下看的勇气了那么所谓的“分辨率”到底指的是一种什么样的东东呢?仔细观察一下您的手机屏幕,是不是能看到它是由一颗一颗小小的点排列起来组成的?有人说看不出来很好,说明此阶敌的手机屏幕非常好,没有颗粒感,或者此人眼神非常的不好,对于尺寸较小的物体会采用模糊化处理进行过滤,需要借助特殊光学仪器(如放大镜)才能看清屏幕上的点阵。总之,屏幕就是由规则排列的点阵组成的,我们说分辨率是 128x160,就是水平方向数有128 个点,垂直方向数有 160 个点,整个屏幕有 128 乘以 160 个点。欢迎怀疑论者去数一数自己的手机屏幕验证一下。您手机屏幕的分辨率一般都能在
8、说明书或者一些手机网站的介绍手机参数的页面中查到,所以您如果到现在都还不知道自己的身高体重,不妨挪动一下您的手指翻翻说明书或者去问古狗大神,不要来问我对于支持 MIDP 2.0(很好,又有同学问这个 MIDP 又是啥米了这个我不解释了,在说明书和手机网站上同样能查到您的手机支持 MIDP 1.0 还是 MIDP 2.0)的手机,有两种显示模式全屏和非全屏。在非全屏模式下,不是整个屏幕都是游戏画面,屏幕上还有软键指示栏,某些手机还有电池电量指示栏等东西。只有在全屏模式下游戏的画面才会充满整个屏幕。大多数游戏使用的分辨率都是 128x128。如果您的手机屏幕分辨率为 128x128 或更小,建议在
9、“全屏选项”中选择“强制全屏” ,这样所有处理过的游戏都会在全屏方式下运行了。效果对比如图(注:所有游戏画面版权归原游戏厂商所有):如果您的手机屏幕分辨率大于 128x128,例如是 128x160,那么强制令游戏全屏运行未必是好事。如图:可以看到,128x128 的游戏在 128x160 下运行,屏幕会出现空白区域,比较不美观,还不如不全屏呢。 “全屏选项”中的“仅当游戏可能能自动适应屏幕高度时全屏”选项就是针对大屏幕手机而设的。当 JavaMagic 检测到游戏可能能够自动适应屏幕尺寸,即无论在128x128 还是 128x160 还是别的分辨率下,画面均正常,则将游戏设置成全屏运行(如下
10、图) 。如果游戏的分辨率固定在某个数值(如 128x128) ,无法自动适应更大的分辨率,就让它乖乖地以非全屏方式运行。 不过这个自动检测功能不一定 100%准确,而且有的游戏只有一部分是能够自动适应分辨率的(如,某些游戏仅仅是标题画面能够自动适应,游戏中还是锁定分辨率的) 。这时只能选择“不使用全屏方式”了。设置中的“屏幕分辨率指定”是与下面的“分辨率覆盖”一起使用的,一般指定为手机屏幕的分辨率即可。下面的三颗按键为快捷设置按键,点击即可将分辨率设为相应值。在“分辨率覆盖”里,选择“使用指定的分辨率”表示将分辨率指定为使用“屏幕分辨率指定”中设定的数值;选择“在游戏中自动检测” ,则不将分辨
11、率指定为上面设定的值,而是在游戏运行时自动检测最大分辨率。设置这一选项的初衷是为了让处理过的游戏能在分辨率不同的手机上都能正常运行,但显然这种想法太天真了基本上这个选项是废的,不需要考虑。而“不覆盖全屏时分辨率”则表示不对分辨率做手脚,顺其自然,一般与“不使用全屏方式”一起使用。需要注意的是, “分辨率覆盖”只会影响到游戏中能自动适应屏幕分辨率的场合。如果游戏被 JavaMagic 检测为能够自动适应分辨率,但您选择了“ 不使用全屏方式” ,这时还应该在“屏幕分辨率指定”里将分辨率指定为游戏所用的分辨率(您的手机在非全屏模式下的游戏画面分辨率) ,或者选择“不覆盖全屏时分辨率” ,不然的话游戏
12、画面会很恶心地超出您的屏幕显示范围;如果游戏被检测为不能自动适应屏幕分辨率,则这里设置的值不会对游戏产生任何影响。唯一的例外就是 JavaMagic 发生误判如果用 JavaMagic 处理后您的游戏行为异常,可以试试另外一款也是干这种勾当的软件 俄罗斯人的 FullJava,事实上 JavaMagic 的部分灵感也是来自 FullJava 这款软件。全屏下面是“字体替换”的设置。开启此功能后,无论大中小字体,一律用手机默认的字体代替。如果您受到无法显示小字体这一问题的困扰,不妨试试开启字体替换功能,也许会有所帮助哦但这个功能只是对字体进行替换,在有的游戏中使用系统默认字体后还需要对文本的位置
13、进行修正,这样画面看起来才比较美观。对于这一点,JavaMagic 就无能为力了。以下是国产游戏血案现场之谋杀山庄的效果对比: “键码转换”也是一项非常实用的功能,也是 JavaMagic 的一大特色。如果您的游戏采用的是 Nokia 的键位,而不幸您的手机的键位与 Nokia 的不一致,现在可以不必再为此郁闷,使用 JavaMagic 即可轻松搞定。不过之前需要做一个工作,就是知道自己手机的键码(KeyCode) 。上面那个按键测试程序在手机上运行,按下按键即可看到该键对应的KeyCode。如图:记下手机上所有按键的 KeyCode。注意,如果你按下某个键没反应,不必担心,因为并非每个按键都
14、会有 KeyCode。回到 JavaMagic,点击“键码设置”:由于数字键、*、# 键的 KeyCode 在每台手机上都是一样的,因此这里只提供了 上 下 左 右 选择/确认 左软键 右软键 等键的转换。在这里填入您手机上对应键的KeyCode 即可。如图,假如我的手机的上 下 左 右 选择/ 确认 几个键的 KeyCode分别是 1, 6, 2, 5, 20,将它们填到相应位置里,而手机上的左右软键是没有 KeyCode 的(真的存在这么变态的手机,不骗你) ,想用*和#代替左右软键,则应将*和# 的KeyCode(42, 35)分别填入 Left-Softkey 和 Right-Soft
15、key 的框中。填好后按确认即可。 为方便他人,希望大家能把自己测试得到的键值保存为文件,并点击“下载/上传键值文件”将键值放到网上共享。点击“默认值”可以将键值回复到默认的值。这个默认值也是可以自行指定的,只需要将键值以 KeyDefault.xml为文件名保存,并与 JavaMagic.exe 放在同一文件夹下即可。在“键码转换”中,还可以指定选择/确认键的功能。比如某些游戏中这个键本身是没有功能的,用上下左右移动后,还要把手指伸到左软键上按确认。如果你像我一样懒,可以将 选择/确认键定义为左软键,这一在游戏中操作起来就方便多了。注意,出于软件易用性考虑,JavaMagic 只提供其它手机
16、键位 -Nokia 式键位的转换。如果您要处理的游戏本身使用的键位不是 Nokia 式的,建议您将游戏交与专业人士处理。当然,自行处理的方法还是有的,但涉及 Java 编程,因此不在此讨论。“Manifest 与 Jad 选项”可能也会让某些人感到迷惑。其实这里的选项也与兼容性有关。先说说 Manifest 是什么。在每个 jar 文件中,都会有一个 meta-inf 目录。在 meta-inf 目录下,都有一个 manifest.mf 文件。这跟从前有座山山里有座庙庙里有个叫 manifest.mf 的和尚的原理是一样的。这个和尚满脸字符,是一个文本文件,可以用记事本打开看看它具体长成啥样。文件包含了一些属性信息,它每行的格式基本上都是 xxxx: xxxxxxxx,冒号前面的字符串为属性的名字,后面为属性的值。例如