目 录
绪 论 1
第一章 开发工具介绍 2
1.1网络游戏介绍 2
1.1.1网络游戏特征 2
1.1.2网络游戏的类型 3
1.1.3 Java语言的特点 4
1.1.4中国网络游戏市场现状 5
1.2 J2SE简介 5
1.2.1什么是J2SE 5
1.2.2 J2SE 平台体系结构 6
1.2.3 J2SE体系结构优势 6
1.2.4 J2SE编译运行的过程 7
1.2.5发环境及相关技术的介绍 8
1.2.6网络游戏开发概述 9
1.3绘图与混淆器 9
1.3.1提供低级绘制的Canvas类 9
1.3.2 Graphics类 10
1.3.3 JPG格式 10
1.3.4有关绘图的一些技术 10
1.3.5混淆器(Obfuscator)的使用 11
第二章 坦克大战游戏的需求分析 12
2.1坦克大战游戏的任务概述 12
2.2本程序需解决的有关程序问题 12
2.3使用对象 13
2.4游戏功能 13
2.5建议软硬件配置 13
第三章 总体设计 14
3.1坦克大战游戏的总体功能 14
3.2坦克大战总体流程图 15
第四章 算法设计和主要技术 16
4.1坦克大战生成算法 16
4.1.1子弹产生的算法 16
4.1.2敌人坦克产生的算法 16
4.1.3爆炸效果产生算法 17
4.1.4大本营产生算法 18
4.1.5面板产生算法 19
4.1.7河流产生算法 21
4.1.8普通墙的产生算法 22
4.1.9钢墙的产生算法 22
4.1.10主机服务器建立连接算法 23
4.2功能实现算法 26
4.2.1子弹功能算法 26
4.2.2坦克功能算法 27
4.2.3面板功能算法 28
第五章 坦克大战游戏的详细设计 30
5.1服务器的类 30
5.1.1主类ServerView类 30
5.1.2服务器模型ServerModel类的实现 31
5.1.3子弹属性bullet类的实现 34
5.1.4轰炸类bomb类的实现 37
5.1.5面板类drawingPanel类的实现 38
5.1.6敌人坦克enemy类的实现 40
5.1.7游戏关数level类 43
5.1.8游戏者player类的实现 46
5.1.9其他各类的实现 50
5.2客户端的类 53
5.2.1子弹属性bullet类的实现 53
5.2.2客户端模型ClientModel类的实现 54
5.2.3面板类drawingPanel类的实现 55
5.2.4说明控制类instructionHandler类的实现 57
5.2.5其他各类的实现 59
5.3服务器类结构图 62
5.4客户端类结构图 62
5.5坦克大战游戏的场景结构流程 63
第六章 系统实现 64
6.1各个类之间的主要功能 64
6.2系统功能实现 65
6.2.1主机运行启动图 65
6.2.2客户运行连接图 66
6.2.3玩家消息交互图 67
6.2.4超级武器效果图 68
6.2.5游戏过关图 68
6.2.6大本营变化图 69
6.2.7游戏结束图 69
第七章 游戏测试 70
7.1 测试方法 70
7.2 部分测试用例 70
7.2.1系统启动测试 70
7.2.2子弹发射测试 70
7.2.3玩家移动测试 71
7.2.4信息发送测试 71
7.2.5游戏暂停和继续的测试 71
7.2.6游戏胜利与失败的测试 72
7.3 测试分析和小结 72
总 结 73
参考文献 74
致 谢 75
附录A 用户手册 76
A.1坦克大战运行环境配置 76
A.1.1 软件配置 76
A.1.2 硬件配置 76
A.2“坦克大战”游戏规则 76
A.3“坦克大战”游戏操作 76
附录B 部分重要代码 77
B.1 ServerModel.java 77
B.2 Player.java 78
总 结
该游戏是基于J2SE架构开发一款网络版坦克大战游戏, 该网络游戏包括游戏场景(地图) 的处理、双方作战对象(坦克和子弹) 的生成、消减和控制, 以及敌方坦克和子弹运行的控制, 双方在游戏中的对话,超级武器的生成,实现了特定场景中的敌我双方坦克的对战, 敌方坦克由系统控制, 自动的发射子弹; 我方坦克由玩家控制, 系统为玩家提供控制坦克运行和子弹发射攻击的方法。该游戏软件具有一定的复杂性和可玩性。
在该游戏的设计与实现过程中,不可避免的遇到一些技术方面的问题,比如对游戏地图加载技术、坦克间的检测碰撞技术、地图中障碍物的加载等,这些问题的解决是本游戏的关键。当然,该游戏有待于进一步的提高,比如更大程度的提高敌方坦克智能化、游戏中添加宝物(物品),增强可玩性等等。
但几乎每一个计算机程序都会有这样会那样的不足,尤其是未经过精心维护的非商业软件。即使是作为操作系统的各种版本的Windows也时常会发生许多类型的错误和漏洞。本游戏程序对于初涉领域的毕业设计课题来说,尤其是开始初期,感觉逻辑复杂,难以控制,因此至今还有一些未能解决的bug。
目前发现的bug和未完善的功能如下:
1.敌人的人工自能变化较少,不够理想。
2.统计敌人坦克数量会出错。
3.暂停时,出现的超级武器也会随时间消失。
4.当加入超级武器(星)之后,有时仍不能打破钢墙。
已经解决的重要bug:
1.当发出子弹到达边界并同时还在草丛中时会抛出数组边界异常。
2.有时会莫名其妙的死机。
3.当坦克在草丛中时,对方坦克发出的子弹不能将其击毁。