发布一篇办理在J2ME平台上的手机游戏移植的成绩
还有就是总有人问我到底该学习什么语言,什么语言有前途,那么我的回答是不论是C,C++,java,.net网页编程,ruby,asp或是其他语言都可以学,编程的关键不是语言,而是思想。手机游戏移植次要的事情是把本来的一款其余型号手机上的游戏。经由修正能在以后型号的手机上运转和利用的历程。以是能够把这个事情细分为几方面的事变:
1、处置屏幕尺寸
这也是最主要的一点。分歧型号的手机。屏幕巨细分歧。分辩率分歧。以是要包管每款游戏放在每种型号的手机上都能到达一样的运转效果。那切实其实是件坚苦的事变。以是移植的时分就只管找差异较小的机型做移植。程序中必要注重的就是双缓冲的尺寸。和画面内容的地位。固然最乐意看到的就是能有个全局变量来把持全部游戏场景。
2、修正按键值
这是另外一个主要的方面。确保游戏可以一般的操纵的条件前提。好比NOKIA的机型的摆布软键分离是-6,-7,而Motorola的C650的摆布软键就是-21,-22。以是这类不同是没法躲避的。除非你的手机游戏程序可以顺应分歧的机型发生分歧的键值。我上个月做的一款游戏就是如许的。并且顺应分歧的屏幕巨细。切实其实很不错程序。
3、处置内存占用
这是另外一个没法躲避的成绩。假如你的手机功能不错。那大概你不必思索。好比你做motorolaE680的游戏。可是多半机型的内存容量是你必要重点思索到的。我见过良多游戏移植到新机型时呈现良多难以注释的成绩。一样平常都是由内存不敷引发的。好比图片没法显现。游戏没法安装。逝世机等征象。以是我们移植的过程当中。就要事前盘算好你的内存占用情形。把无用的对象设置为NULL。
4、完全汉化
某些游戏是英文界面的。以是假如要切合中国挪动的标准来做。还必需包管没有一个英笔墨符呈现。不外这听起来也有点强者所难。好比游戏中的LAP1/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的用法。提一个中央。就是在手机加载图片时。手机上钩算图片占用的内存是:图片长 你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。 如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。 任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言 《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。 是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言 是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言 是一种为 Internet发展的计算机语言 是一种突破用户端机器环境和CPU 不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。 你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。
页:
[1]