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数组。或是做成图片占内存更少一些。


以上就是我这几个月的一点点感想。由于也是刚刚进入这个行业。很多都是在摸索。如果你觉得有些地方写得太幼稚。请不要见笑。把你的意见发给我。我会虚心接受的。希望各位朋友指正。也希望给正要进入这个行业的朋友一点实际工作体验。
我的QQ:191971016

如果您要转载我的文章,请标明出处。并且保持文章的完整性。谢谢!

基于J2ME的手机游戏设计与制作实战教程 / 移动指令包:type(1)+x(1)+y(1)+ts(2)+crc(1)// 类型:移动// XOR校验📡传输策略建议:- 合并多个操作,减少小包发送- 加入心跳保活:- 失败重试最多3次,避免无限阻塞J2ME或许已退出历史舞台,但它教会我们的东西从未过时:在资源极度受限的环境中,优雅的架构比强大的功能更重要。这种“以小搏大”的工程思维,正在IoT、边缘计算、WebAssembly等领域重新焕发生机。 阅读详情

相关推荐

探索J2ME平台的潜艇大战游戏源代码

本文还有配套的精品资源,点击获取 简介:《潜艇大战》是一款利用Java ME平台开发的手机游戏,它提供了学习游戏算法和移动游戏开发的宝贵资源。该游戏包含了多种游戏机制和算法,如碰撞检测、AI行为模拟、游戏状态管理等。源代码深入展示了游戏开发的各个方面,包括用户界面设计、数据存储、性能优化,适用于希望深入了解移动游戏开发和J2ME平台的开发者。 1. J2ME平台游...

weixin_42629522的博客 1401

《J2me小白转正记》 浅谈J2me游戏如何快速移植到Android

《J2me小白转正记》                                 --------------浅谈J2me游戏如何快速移植到Android(关于这篇文章~非常的尴尬~骨头就不细说了~)前言小白:“老大,你让做的三个J2me游戏搞定了,请看DEMO。”老大:“恩,不错,小白,你知道Android这个平台吧?”小白:“恩,听过。听说和J2ME有很多共同点。”老大:“(一阵奸笑)很多共同点是吧?”小白:“恩。”老大:“那好,你把这几个J2ME游戏给我移植到Android上去。”小白:“……”

3273

提取j2me里的PNG图片资源

提取j2me图片资源的软件。软件用法:第一项:打开你想要查看的jar,第二项选择图片提取后的地址。然后按开始提取。软件就会提取了。 把图片开头改掉一点,普通png图片以16进制打开为(开头为 89 50 4E 47),(结尾为 49 45 4E 44 AE 42 60 82),所以只要改回正确的就能提出来了。 还有就是放在一些其他乱七八糟的文件里,如与文字一起放在dat、class等文件,这种混杂的,可以搜索“PNG”,然后按png的开头部分、结尾部分来提取这段,再保存为.png就行了(或者可能也要先改下)。

android 移植游戏,Unity游戏移植到Android平台

很多时候不仅需要单纯的运行单个的unity游戏,而是需要将游戏嵌入Android代码中和android其他功能相辅生成一个APP,比如通过android界面的一个按钮来启动一个unity游戏。本文介绍一下主要的过程。1. 将可运行的unity游戏打包为Android project。在Unity界面,File->Building settings,Export Android projec...

weixin_36225248的博客 3078

收集几个常用的JAVA J2ME类库.rar

从网上收集的5个J2ME手机游戏开发类库:   1. LVector.java:Vector实现类;   2. StringTokenizer.java:StringTokenizer类;   3. SimpleCache.java:Cache类;   4. MD5Digest.java:J2ME MD5算法类;   5. Blowfish.java:J2ME的Blowfish加密类;   平时若要用到这些文件,直接引入相关方法即可。

用于j2me游戏的png打包bin文件、读取代码

用于j2me游戏的png打包bin文件、读取代码。包含两部分,一个打包工具一个读取代码。

J2ME平台手机游戏移植体会

 J2ME平台手机游戏移植体会          Author: 一滴蔚蓝色 |  Date: 2008-05-10 |  View: 39 |  开发技术 -  新手上路   做了半年手机游戏移植,有种身心疲惫的感觉.每天反复的阅读别人写的代码,很是郁闷.希望某一天能换个环境做做开发.哎.首先要说的是,我在公司移植的主要是日本的手机游戏.多数需要汉化处理.少数涉及到跨平台的移植.我所用的编程环境

Go for it! 745

j2me游戏素材(图片合集)

j2me游戏素材

[转载]J2ME平台上手机游戏移植的体会

J2ME平台上手机游戏移植的体会首先要说的是,我在公司移植的主要是日本的手机游戏.多数需要汉化处理.少数涉及到跨平台的移植.  我所用的编程环境就是很普通的WTK+JDK.而且版本都是很低的,因为要符合中国移动的打包规范。然后再...

congji3817的博客 236

劲乐团 J2ME 移植

劲乐团 J2ME 移植,这是一款PC移植游戏,适合新手学习,习武大家一起进步。

J2ME在ARM-Linux嵌入式系统上的移植.pdf

J2ME在ARM-Linux嵌入式系统上的移植.pdf

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

作者:k7sem 文章来源:优快云 首先要说的是,我在公司移植的主要是日本的手机游戏.多数需要汉化处理.少数涉及到跨平台的移植.我所用的编程环境就是很普通的WTK+JDK.而且版本都是很低的,因为要符合中国移动的打包规范。然后再用一个文本编辑器写写代码。仅此而已。手机游戏移植主要的工作是把原来的一款别的型号手机上的游戏。经过修改能在当前型号的手机上运行和使用的过程。所以可以把这个工作细分为几方面

mobilechannel的专栏 968

MySQL安装配置教程(超级详细)

一、 下载MySQL Mysql官网下载地址:MySQL :: Download MySQL Installer (Archived Versions) 1. 选择要安装的版本,本篇文章选择的是5.7.31版本,点击Download下载 正在上传…重新上传取消 二、 安装MySQL 1. 选择设置类型双击运行mysql-installer-community-5.7.31.0.msi 这里选择是自定义安装,所以直接选择“Custom”,点击“Next” “Developer Default”是

m0_67322837的博客 5万+

J2ME平台手机游戏移植的体会【转】

<br />首先要说的是,在公司移植的主要是日本的手机游戏.多数需要汉化处理.少数涉及到跨平台的移植.<br />所用的编程环境就是很普通的WTK+JDK.而且版本都是很低的,因为要符合中国移动的打包规范。然后再用一个文本编辑器写写代码。仅此而已。<br />手机游戏移植主要的工作是把原来的一款别的型号手机上的游戏。经过修改能在当前型号的手机上运行和使用的过程。所以可以把这个工作细分为几方面的事情:<br />-----------------------------------<br />1,处理屏幕尺寸

JasonChan2008的专栏 631

【FPGA】AD9653设计和调试总结

基于FPGA的AD9653设计,设计思路,注意事项

weixin_41246509的博客 7597

手把手教你用U盘给海信IP501H刷机:GK6323V100C芯片的4.4.2和9.0固件实战

本文详细介绍了海信IP501H电视盒子基于GK6323V100C芯片的刷机实战指南,涵盖Android 4.4.2强刷和Android 9.0免拆刷机两种方案。从工具准备、短接操作到ADB调试,提供全流程解析和常见问题解决方案,帮助用户安全高效地完成刷机操作。

lemon的博客 1458

2005年毕业论文----J2ME手机游戏开发高计

一  前  言 1.1 摘要 J2ME(Java 2 Micro Edition) 是近年来随着各种不同设备,尤其是移动通信设备的飞速发展而诞生的一项新的开发技术。它定位在消费性电子产品的应用上,对设备的智能化、多样化,提供了革命性的解决方案,并因其“Write Once, run anywhere”的Java特性而提高开发的效率。 随着手机的日益普及、Java功能在移动设备上的实现,Java应用

临界思考 4550

ffmpeg 4.4 cenc-aes-ctr 加解密 MP4 工程性质分析

ffmpeg 4.4 cenc-aes-ctr 加解密 MP4 工程性质分析

Dream_Dynasty的博客 3047

关于写《J2ME手机游戏开发技术详解》的初衷

    我接触J2ME纯属偶然,并且时间并不是很长,但是由于我长时间的BREW游戏开发经验,并且有良好的C++基础,因此对于J2ME游戏而言,掌握较为轻松。    我最早进行的J2ME手机开发是在中国联通刚刚推出UniJa的时候,并且作为当时第一批正式商业应用上市的,见证了UniJa的成长历程。这比大部分中国移动的开发人员来讲,更多的接触了一个不成熟的Java虚拟机。由于开始是在一个不稳定的J

李振鹏的专栏 2092

ensp企业网综合实验(课程设计)

使用MSTP+VRRP技术实现负载均衡以及增加网络的可靠性;出口配置napt;所有用户均为自动获取IP地址;

qq_50829760的博客 1万+

vectorCast——Probe point 功能实现故障注入,局部变量打印,断点调试。

选择一个测试用例,选择coverage窗口进行查看。点击edit probe point,如图所示绿色的小圆圈。 选代码中选择需要打断点的地方进行点击。黑色的小圆点都可以选。 点击黑色小圆点,小圆点变绿,表示打断点成功。 此时就可以根据自己的需求在打断点的位置编写一些C语言的命令语句。 点击编译,成功会弹出窗口显示编译成功,失败会在下方报错error,并显示错误的原因。 点击应用保存,选择yes to all就可以了。 点击用例执行就可以看到打断点情况下的执行结果了。

weixin_59334478的博客 2077

J2ME游戏移植OPhone平台要点

J2ME游戏移植OPhone平台要点   手机游戏是目前深受广大手机用户喜爱的一种娱乐软件,各大运营商都有自己的手机游戏平台,比如中国移动的百宝箱,MM平台,当然,除了运营商之外,类似QQ游戏平台和一些Free Wap网站都提供手机单机和网络游戏的下载。目前大多数的手机游戏还是以J2ME平台为主,而OPhone做为一个后起之秀、一个新的手机操作系统,目前上面的软件和游戏还不是很多,但是它有一个

629

Temporal Noise Reduction(TNR)时序去噪技术解析:原理、平台实践与工程调优路径

随着高画质夜景拍照和高清视频拍摄需求的持续增长,图像传感器在低照度环境下输出信号的噪声问题日益突出。相比空间域降噪(SNR),时序去噪(Temporal Noise Reduction, TNR)利用帧间信息进行融合处理,具备更高的信噪比提升效率及更强的边缘保护能力,已成为移动影像ISP链路中的核心环节。本文系统剖析TNR的算法原理、平台实现机制与工程调试路径,并基于实际开发案例分析其在不同场景下的效果差异及调优方法,为工程师提供从理论到实操的完整路径参考。

努力分享一些人工智能、计算机视觉、影像等相关的知识干货! 3206
上一篇: MIDP2.0手机上的手电筒程序(附代码)
下一篇: 闲话J2ME技术之手机比PC好的N个理由
java2000_test
博客等级 码龄19年 10粉丝 320原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值