`

J2ME平台上手机游戏移植的体会

阅读更多

首先要说的是,我在公司移植的主要是日本的手机游戏.多数需要汉化处理.少数涉及到跨平台的移植.

  我所用的编程环境就是很普通的WTK+JDK.而且版本都是很低的,因为要符合中国移动的打包规范。然后再用一个文本编辑器写写代码。仅此而已。

  手机游戏移植主要的工作是把原来的一款别的型号手机上的游戏。经过修改能在当前型号的手机上运行和使用的过程。所以可以把这个工作细分为几方面的事情:

  1、处理屏幕尺寸

  这也是最重要的一点。不同型号的手机。屏幕大小不同。分辨率不同。所以要保证每款游戏放在每种型号的手机上都能达到同样的运行效果。那的确是件困难的事情。所以移植的时候就尽量找差距较小的机型做移植。程序中需要注意的就是双缓冲的尺寸。和画面内容的位置。当然最愿意看到的就是能有个全局变量来控制整个游戏场景。

  2、修改按键值

  这是另一个重要的方面。确保游戏能够正常的操作的前提条件。比如NOKIA的机型的左右软键分别是-6,-7,而Motorola的C650的左右软键就是-21,-22。所以这种差别是无法回避的。除非你的手机游戏程序能够适应不同的机型产生不同的键值。我上个月做的一款游戏就是这样的。而且适应不同的屏幕大小。的确很不错程序。

  3、处理内存占用

  这是另一个无法回避的问题。如果你的手机性能不错。那也许你不用考虑。比如你做motorola E680的游戏。但是多数机型的内存容量是你需要重点考虑到的。我见过很多游戏移植到新机型时出现很多难以解释的问题。一般都是由内存不够引起的。比如图片无法显示。游戏无法安装。死机等现象。所以我们移植的过程中。就要事先计算好你的内存占用情况。把无用的对象设置为NULL。

  4、完整汉化

  某些游戏是英文界面的。所以如果要符合中国移动的规范来做。还必须保证没有一个英文字符出现。不过这听起来也有点强人所难。 比如游戏中的LAP 1/3 赛道的第几圈。 你非要改成 圈 1/3 。但是也没办法。符合规范是你提交游戏的前提保证。汉化中可能出现的问题就是。如果文字被做成图片了,你需要通过美工的协助来完成工作。

  5、游戏的功能修改

  很多时候如果你要保持与中国移动的规范相同。就要修改左右功能键的位置。以及还要涉及到给游戏添加暂停和继续的功能。甚至有时候你需要自己写个游戏菜单。并且添加一些LOGO界面。

  上面提到的方面。多数都是移植中必须处理的工作内容。如果你碰到了难以让你下手的游戏。不要着急。因为代码不是你写的。如果你看着头晕,可以先从简单的入手。然后理清思路。下面谈谈我移植过程中一般的步骤。

  1、查看资源文件

  这是最重要的。是你修改游戏的前提条件。如果你连资源文件都不清楚是什么,那你无法完成剩下的工作。资源文件有几种。比如单纯的图片。PNG格式(日本DOJA的游戏图片格式是GIF)、声音文件、文本文件、数据文件等等。这里要提一下数据文件。我一般把除了图片,声音,文本以外的格式的文件都叫数据文件。不过这类文件是我不希望看到的。因为它不便于与修改。有些游戏为了读取资源的方便。和占用空间的考虑。会把图片文件做成一个数据文件来处理。以前我都是用Ultraedit把这个数据文件打开。然后一段一段的通过提取PNG格式的数据。然后从新保存成PNG文件。很麻烦。后来我自己写了两个工具。一个程序用来提取图片。一个程序用来从新生成数据文件。感觉方便了许多。

  2、阅读代码的技巧

  代码是必须得读的。否则就不叫修改了。但是也不用你都读懂,读透。毕竟是别人写的代码吗!(^_^看不懂的时候,想想这句找点心里平衡),而且不用每句都看全了,如果上万行的代码。你把每句看一遍。也够你累的。而且在BOSS规定的时间内完成不了。你也麻烦。我一般首先要看实现游戏主要场景和功能的类。也就是所谓的Canvas类。因为这个类肯定不是自己启动的。要通过MIDlet主类加载。或者再委婉一些通过另外的类加载。所以其他的类都是辅助这个类来完成游戏功能的。然后看看这个类的导入了哪些包。 继承自什么类。实现了什么接口。然后再看它的构造函数。以及paint()方法。如果有线程的话,还要看看run()里面的代码。这些就是这个游戏的主要切入点。控制着游戏的进程和绘图。其他的像游戏中的算法之类的东东。如果有时间。你就好好研究一下。这对你来说是很有意义的。

  3、不要相信模拟器

  做不同牌子手机,不同型号的手机游戏,肯定会用到模拟器来运行。看看效果。我觉得用看看效果这个词已经很贴切了。因为有些游戏模拟器都运行不了。你连效果都看不到的。所以必须要用真实的手机运行和测试。但是按键值也必须用真机测出来。虽然多数模拟器和对应的真机相同。

  4、解决不同手机的BUG

  最头疼的事情也就是这个了。会出现一些莫名其妙的错误。明明在这个手机上运行的很好。可是到另外一个手机上就出现意想不到的错误。比如无法安装。图片无法显示。玩到某个地方死机。声音无法播放等等。遇到问题先不要着急。冷静的回想一下代码和上一次修改的过程。如果都排除人为原因。那就从内存 和图片 来考虑。有些时候 repaint() 和ServiceRepaints() 也会出现问题。比如NOKIA 新 S60系统。 而且考虑问题不要太片面。因为游戏本身就是一个环环相扣的过程。

  另外我还要说说手机内存的处理。这是个经典的话题。我这个无名小辈也都能谈及于此。说明它的确无法回避。什么String的使用,System.gc()之类的。以及将无用的对象设置为NULL。这些网上都有相关的讨论。以及static的用法。我只提一个地方。就是在手机加载图片时。听人说手机中计算图片占用的内存是:图片长×图片宽×图片颜色数×2。但是我没具体算过。不过感觉图片的内存占用确实和图片的面积有直接的关系。甚至一幅透明的图片和一幅单色的同样尺寸的图片占用的内存都是很接近的。另外要少用Graphics.drawString() 。有空可以自己写程序测试一下。如果你写了一篇文字。用了N个这个语句。那就应该看看。是否需要替换成一个String数组。或是做成图片占内存更少一些。

分享到:
评论

相关推荐

    基于J2ME平台的手机游戏开发论文.doc

    基于J2ME平台的手机游戏开发论文 J2ME(Java Platform, Micro Edition)是一种专门为移动设备和嵌入式系统设计的Java平台。它提供了一种跨平台的解决方案,允许开发人员使用Java语言创建可以在不同的移动设备上运行...

    简谈手机游戏移植j2me

    综上所述,将手机游戏移植到J2ME平台是一项复杂而具有挑战性的任务。它不仅涉及到技术层面的问题,还需要开发者具备良好的项目管理和跨平台开发经验。通过合理的规划和技术选型,可以在保证游戏质量和用户体验的同时...

    J2me飞机射击手机游戏完整代码版

    《J2ME飞行射击手机游戏开发详解》 在移动设备技术早期,Java 2 Micro Edition(J2ME)是开发手机应用程序的主流平台之一,尤其是对于游戏开发而言。本篇文章将深入探讨“J2ME飞机射击手机游戏完整代码版”所涉及的...

    J2ME游戏移植到Android手机

    【J2ME游戏移植到Android手机】是一个技术性较强的主题,涉及到两个不同的移动平台:Java ME(J2ME)和Android。J2ME是早期移动设备上广泛使用的开发框架,而Android则是现代智能手机的主要操作系统。当需要将J2ME...

    J2ME游戏如何移植成android

    在本文中,我们将探讨如何将J2ME游戏移植到Android平台上。作为一名IT行业大师,我将详细地解释J2ME游戏移植到Android平台的技术要点。 首先, lets talk about the differences between J2ME and Android平台。...

    基于j2me的手机游戏开发

    在2000年代初,J2ME是手机游戏开发的主要平台,尤其在非智能手机(如诺基亚的Symbian系统手机)上广泛应用。本篇将深入探讨如何使用J2ME进行手机游戏开发。 ### 1. J2ME架构与配置 J2ME由两部分构成:K Virtual ...

    j2me移植Android引擎

    【描述】中提到的“J2ME游戏移植Android文档”很可能包含了一系列步骤和最佳实践,指导开发者如何有效地进行移植工作。这个过程通常包括理解J2ME和Android之间的差异,识别和解决兼容性问题,以及利用特定工具和库来...

    基于J2me5个手机游戏经典例子源代码

    《基于J2ME的5个手机游戏经典实例解析》 J2ME,全称为Java 2 Micro Edition,是Java平台的一个子集,主要用于嵌入式系统和移动设备,特别是手机和掌上设备。本资源提供了五个基于J2ME的手机游戏经典源代码,对于想...

    j2me移植到Android(Ophone)-游戏文档

    目前大多数的手机游戏还是以J2ME平台为主,而OPhone做为一个后起之秀、一个新的手机操作系统,目前上面的软件和游戏还不是很多,但是它有一个很大的优点——也是基于JAVA语言开发。有了这个优点也就意味着所有的J2ME...

    基于J2ME平台的手机游戏开发--颜色方块游戏

    《基于J2ME平台的手机游戏开发--颜色方块游戏》 J2ME,全称为Java 2 Micro Edition,是Java平台的一个子集,专为资源有限的移动设备设计,如早期的智能手机和平板电脑。它提供了一套框架,允许开发者创建能在多种...

    基于J2ME平台的手机应用程序研究与开发

    综上所述,基于J2ME平台的手机应用程序开发涉及了从基础的J2ME架构理解,到具体的MIDP组件使用,再到开发工具的选择和应用发布流程。开发者需要掌握这些核心概念和技术,才能有效创建出能在多种手机平台上运行的高效...

    J2ME手机游戏开发引擎的分析与设计

    本文主要探讨了J2ME手机游戏引擎的开发,这种引擎能够帮助开发者快速构建J2ME平台上的游戏,通过自定义参数生成游戏框架,使得程序员可以专注于游戏逻辑的实现,提高开发效率并确保游戏质量。 1.1 开发的目的和意义...

    j2me超级玛丽 手机游戏

    2. **游戏开发**:在J2ME上开发游戏涉及到低级别的图形和音频处理,因为平台资源有限。开发者需要编写自己的图形渲染代码,可能使用位图或者矢量图形,并且需要处理帧率控制和动画序列。音效管理也是一个挑战,因为...

    基于J2ME平台的手机游戏贪吃蛇程序的设计与实现.doc

    基于J2ME平台的手机游戏贪吃蛇程序的设计与实现.doc

    j2me手机游戏案例精编电子教程

    J2ME是Java平台的一个子集,专为嵌入式设备,如早期的智能手机和平板电脑设计,它提供了开发移动应用程序的框架,包括手机游戏。 本教程内容丰富,主要围绕着五子棋游戏的开发进行,五子棋是一种受欢迎的双人策略...

    《J2ME平台手机游戏开发》教学大纲

    《J2ME平台手机游戏开发》是一门针对游戏软件专业的实践性强的课程,旨在通过学习Java编程语言,深入理解J2ME(Java 2 Micro Edition)的特性,特别是MIDP(Mobile Information Device Profile)1.0和CLDC...

    j2me开发手机游戏

    **J2ME手机游戏开发详解** Java 2 Micro Edition(J2ME)是Java平台的一个子集,专门设计用于资源有限的设备,如早期的移动电话和掌上设备。在2000年代中期,J2ME是开发手机游戏的主流技术之一。本篇将深入探讨J2M

Global site tag (gtag.js) - Google Analytics