本文节选于笔者在数年前开发手机游戏时总结的一份文档。一家之言,贻笑大方。
1 J2ME开发基础
1.1 计算几何在J2ME开发中的应用
由于支持J2ME的设备通常不支持浮点运算,所以对于某些特定的问题可以通过计算几何学的方法解决。例如判断两条线段是否相交的算法,在支持浮点运算的设备上可以通过联立方程组求解的方法解决。在不支持浮点运算的设备上则需要通过计算几何的向量运算来解决。常见的可以通过计算几何学的方法解决的问题有 1、判断两线段是否相交;2、判断线段、折线、多边形是否在矩形中;3、判断矩形是否在矩形中;4、判断圆是否在矩形中;5、判断点是否在多边形中;6、判断折线是否在多边形内;7、求线段或直线与折线、矩形、多边形的交点;8、凸包的求法等等。具体的算法可以查阅计算几何学相关的教科书。
1.2 有限状态机在J2ME开发中的应用
有限状态机在硬件设计、编译理论等许多方面有着广泛的应用。它同样适合游戏开发。例如在ForrestWarrior游戏中,Player类就采用有限状态机来控制各种状态之间的迁移。Player有以下几种状态1、站立;2、站立行走;3蹲;4、蹲着行走;5、跳跃;6、下落。同时在1、3、5和6状态下可以进行攻击(由于J2ME不响应同时按键,所以在2和4状态下不能攻击)。如果采用条件分支语句进行状态判断的话,判断逻辑将会异常复杂而且难于修改和调试。而在采用了有限状态机之后,控制逻辑大大简化。具体代码可以参考ForrestWarrior游戏中的Player类和State类。
1.3 J2ME游戏中寻径算法的设计策略
一提到寻径算法,大家通常都会想到A*算法。但是由于支持J2ME设备的运算能力有限,堆栈的大小也不适合做复杂的递归运算,所以寻径算法的设计要针对每款游戏的特点进行设计。例如在雷鸟号游戏中,每架飞机(军舰、坦克)的寻径策略已经编码在剧情文件中,这样做的优点在于可以有效的控制飞机的编队移动。在BomberMan游戏中,利用动态的阀值控制NPC的移动。具体策略就是通过设置不同的阀值上下限,同时在每一次移动之后对阀值进行微调的方法来控制移动中变向的频率。在荒岛探宝游戏中则采用了更精确的寻径算法。具体策略是采用广度优先算法搜索与Player连通的区域(通过调整搜索队列的大小来控制搜索的范围)。在搜索的过程中,如果某个点和Player连通,则同时标记与Player的距离。有了这些数据之后,NPC的寻径策略就变得相对简单。在NPC的每次移动之前,首先判断目前所在的位置和Player是否连通,如果不连通就采用同BomberMan游戏中的NPC类似的算法进行移动;如果连通,就走向与 Player的距离更小的那个点。
分享到:
相关推荐
本资源摘要信息还提供了相关的参考文献,包括 Effective Java、Java 编程思想、Java 手机/PDA 程序设计入门、J2ME 开发大全、软件工程等。 进度安排 进度安排包括六个阶段: 1. 进入设计环境调研,完成需求分析...
J2ME(Java 2 Micro Edition)是针对嵌入式设备和移动设备的Java平台,而J2SE(Java 2 Standard Edition)则是标准版,主要用于桌面应用。在深入学习Java之前,了解并熟练使用J2SE是必要的,因为它包含了Java的基础...
1. “Effective Java”是由Joshua Bloch撰写的一本关于Java编程的最佳实践指南。这本书详细介绍了Java编程中的各种模式和反模式,教会开发者如何编写高质量、可维护的Java代码。 2. “Java 2”指的可能是一系列关于...
Effective Java 中文版. 2004 年 7 月第 4 版. 机械工业出版社. [2] Bruce Eckel. 侯捷译. Java 编程思想. 2005 年 3 月第 1 版. 机械工业出版社. [3] James Keogh 著.潘颖 王磊译.J2ME 开发大全. 2004 年 2 月第...
项目参考了多本专业书籍,如《Effective Java》、《Java编程思想》、《J2ME开发大全》、《软件工程》、《微型爪哇人》和《Java程序开发》等,为开发提供了理论和技术支持。 综上所述,该毕业设计项目涵盖了游戏开发...
2. **《Effective C++》、《More Effective C++》** —— 这两本书涵盖了大量实用的 C++ 编程技巧,是每个 C++ 开发者的必备读物。 3. **《Inside the C++ Object Model》** —— 详细解析了 C++ 对象模型的工作原理...
Java分为三个主要的平台版本:J2ME(Java 2 Micro Edition)针对嵌入式设备和移动设备,如早期的手机;J2SE(Java 2 Standard Edition)用于桌面系统,提供标准的Java功能;J2EE(Java 2 Enterprise Edition)则面向...
最后,挑战自己阅读《Effective Java》。这本书列出了许多最佳实践,能够帮助你提升编程技巧,无论你是新手还是经验丰富的开发者,都应该不断学习和进步。 除了以上书籍,还有一些优秀的在线资源,如java.sun.com...