1、 摘摘 要要 Java 良好的跨平台特性在移动平台的开发中显示出了巨大的威力。Java 语 言面向对象的优势也使得开发游戏变得非常容易。 随着手机的日益普及、 Java 功能在移动设备上的实现,Java 应用程序产生的 手机增值服务逐渐体现出其影响力,对丰富人们的生活内容、提供快捷的资讯起 着不可忽视的作用。本论文着眼于 J2ME 技术的应用,开发一款可商用的手机游 戏程序坦克大战。本程序的界面和运作方式继承于日本任天堂公司在 20 世 纪 80 年代开发的 Battle City游戏,将老少皆宜的经典作品移植到手机上来,为 更流行的硬件平台提供应用软件。 本论文介绍了任天堂红白机的软硬件特性
2、、J2ME 的相关技术及本程序的结 构分析和具体功能的实现。 关键字关键字:J2ME,手机游戏,Java,坦克大战 手机中将 Java 语言引入,作为一种通用的开发标准,并将向市场推广普及 仅仅短短几年, J2ME 仍是一种新型的技术, 中文资料除台湾出版过相关书籍外, 国内相关介绍资源很有限, 国内J2ME开发商也屈指可数, 名声较响的Digital-Red 公司也仅成立于 1999 年。本文可算是对新技术的一些尝试,代表对无线平台应 用程序推广的一些努力。 - 2 - 目目 录录 摘 要- I - Abstract - I - 第一章 程序结构、思想和相关技术. - 3 - 1.1 本程序
3、需解决的有关技术问题 - 3 - 1.2 程序流程 - 4 - 1.3 绘图与 MIDP2.0 新增的 GameCanvas 包 - 6 - 1.3.1 提供低级绘制的 Canvas 类 . - 6 - 1.3.2 Graphics 类. - 6 - 1.3.3 PNG 格式 - 6 - 1.3.4 Game 包中的新功能 - 7 - 第二章 游戏的设计思路. - 8 - 2.1 坦克的控制和敌方的智能运行 - 8 - 2.2 子弹的运行和控制 - 9 - 2.3 RMS 数据库系统. - 10 - 2.4 内存使用的最佳化 - 11 - 2.5 混淆器(Obfuscator)的使用 - 12
4、 - 第三章 程序分析和具体实现. - 12 - 3.1 游戏进入前的选择 - 12 - 3.2 主游戏逻辑及其涉及到的若干类 - 13 - 3.3 坦克的共同行为 - 15 - 3.4 玩家坦克的功能属性 - 16 - 3.5 敌人坦克的功能属性 - 16 - 3.6 子弹的运行和控制 - 18 - 3.7 记分系统 - 19 - 3.8 本章小结: - 21 - 第四章 总 结. - 21 - 4.1 本程序的总结和展望 - 21 - 4.2 经验和感想 - 22 - 参考文献. - 22 - - 3 - 第一第一 程序结构、思想和相关技术程序结构、思想和相关技术 1 1.1 .1 本程序
5、需解决的有关技术问题本程序需解决的有关技术问题 1. 游戏程序是一项精度要求很高的程序系统, 因为其代码利用率很高。 一 个实时运行的最终作品,每秒都会运行成千上万行程序,绘图事件、键盘事件都 会以极高的频率在后台等待响应, 若有丝毫的差别都将很容易导致程序在运行不 久后可能出现严重错误,甚至死循环。因此,其逻辑设计应当相当严谨,需将所 有可能发生的事件及意外情况考虑在设计中。 2. 游戏中为了美观,适用性强,可能需要采用外部文件引入的图片贴图, 有关贴图,在 MIDP2.0 中提供了用于增强游戏功能的 game 包,使得解决静态或 动态、画面背景、屏幕刷新的双缓冲等都有较好的解决方案。 3.
6、 己方坦克的运行可以通过键盘响应事件控制,但敌方则因为是自动运 行,就需要有一定其一定的智能性;同时,出现在屏幕上的敌方可能会有较多的 数量,这需要为每个敌方开辟一个线程以便能让其独立运行。Java 的多线程能 力为实现这样的游戏提供了可能。敌人坦克的运行算法也需要进行适当的设置, 以免游戏过于简单,单调。 4. 对于双方坦克发出的子弹的控制也需要对其跟踪控制, 子弹也需要处在 独立的线程中。敌方子弹仅需要扫描用户坦克,而用户坦克需要在每一步扫描所 有的敌方坦克。这需要对所有的对象有较好的控制。另外,子弹在运行过程中也 需要实时扫描是否碰撞到了相关障碍物或屏幕边界。 如此过多的线程同时在本来 效率就不高的 KVM 虚拟机上运行,也许会导致程序的缓慢。 5. 双方的坦克在前进时也需要考虑到是否碰撞到相关物体或对方坦克, 以 免重叠运行,造成许多物理上不可能的情况,缺乏真实感。每一次刷新页面、每 前进一步都需要将所有的周围环境都进行扫描。 6. 游戏的结束、 开始、 动态信息画面作为构成一个完美程序都是必不可少 的重要部分。良好的用户界面更是吸引用户的硬指标,