该论文通过总结和分析JAVA游戏的开发流程和代码框架的设计,开发了一款基于J2SE架构的游戏——坦克大战。本设计采用面向对象的设计模式,对游戏中的所有物体赋予对象的概念和属性。运行程序后允许用户选择执行选项菜单。在开始游戏后,启动服务器和客户端,对背景的所有物体进行绘图。在主程序运行的线程中,画面刷新将以一定的频率采用双缓冲技术对屏幕重绘,实时反映整个游戏的进行状态。用户控制的坦克运行在主线程中,随屏幕刷新的频率而移动。坦克将在游戏开始时进行初始化,然后将坦克绘制在地图的上层。本设计主要实现的功能是让坦克能向八个方向移动,并且打出炮弹,子弹击中敌人坦克,子弹和敌人坦克同时消失,产生爆炸,CPU坦克能智能的移动并且打出炮弹。能够支持网络对战和单机对战两种模式。
1.游戏要有图形用户界面,界面能够反映游戏所有的细节。
2.界面中要有坦克,墙,树林,河流。
3.界面中要有一个“家”,“家”被攻击中则输了游戏。
4.坦克分两种,敌方和我方。
5.墙也分为两种,可以穿透的普通墙,不可以穿透的铁墙。
6.树和河流均只有一种,树林坦克可以通过。
7.坦克可以发射子弹,敌我方的子弹属性一样。
8.我方子弹可以杀死敌方坦克,敌方子弹也可以杀死我方坦克,但需要多枪子弹才可以杀死。
9.敌方之间不可以杀死对方。
10.子弹击中坦克要有爆炸,但击中墙不能爆炸。
11.我方可以吃血包增加生命。
12.游戏可以暂停,重新开始,游戏帮助等功能
功能设计
1.设计一个图形用户界面,将所有游戏的元素都能在此用于界面上表现出来,界面能够接受用户的操作,具有人机交互功能。用户可以选择重新开始游戏,退出游戏,暂停游戏和查找游戏帮助。
2.界面中包含坦克,树,河流,阻挡墙和游戏用户所要保护的“家”。
3.坦克:坦克分为两种,敌方坦克和用户控制的坦克。用户方和敌方坦克均可以发射子弹,可以改变路径的行走,且在行走过程中遇到墙等阻碍物和游戏边界时要改变方向,而不能一直顶着障碍物不放。坦克之间不能穿越,碰撞到后自动调换方向。
4.树:界面中要包括树林,作为遮掩物体和修饰物体,以便增加游戏的元素,使得游戏更加贴切人性化。树的数目不限,以游戏整体界面清晰美观来决定数目。
5.河流:界面中要包括河流,河流作用与树林相同,同样河流的数目不限,以游戏界面整体美观度来决定数目。
6.墙:墙体分为两种,普通的墙和铁墙,普通的墙在受到子弹袭击时会损坏,而铁墙可以阻碍子弹的穿越。两方的坦克均不能穿越两种墙体,但都可以摧毁普通墙体。普通墙体的数目配合其他元素合理安排,铁墙则不宜过多,不然游戏难度太低甚至因为坦克不能穿越铁墙而使得游戏无法进行下去。
7.“家”:用户方除了有一辆自己的坦克外还有一个要保护的家,家由普通墙体包围,家受到子弹攻击后游戏立即结束,用户方则输了本局游戏。
8.子弹:子弹可以由敌方和用户方发射,且发射出去的子弹可以直线移动,直到碰到障碍物就消失,子弹可以穿越树林和河流。敌方坦克受到一颗子弹攻击会爆炸从而导致死亡,死亡后坦克消失。用户方受到子弹攻击后会减少寿命,且受到四次攻击则死亡,此时如还有敌方坦克存在,则用户方输掉本次游戏。
9.爆炸:当子弹射击到坦克身上时,要产生爆炸效果。
10.方向:坦克和子弹都有方向,可以选择上下左右四个方向,且子弹的方向从属于坦克的方向。
目录
摘要2
Abstract3
第1章 前言7
1.1 游戏设计的需求分析7
1.1.1 国内外电子网络游戏的现状7
1.1.2 本系统的现实意义8
1.1.3 本系统和其他开发游戏区别8
1.2 开发技术概述9
1.2.1 Java、C#语言、C/C++主流编程语言比较9
1.3 本章小结10
第2章 相关技术理论11
2.1 系统运行环境11
2.1.1 系统运行的软件环境11
2.1.2 系统运行的硬件环境11
2.2 相关理论11
2.2.1 关于Eclipse的介绍11
2.2.2 J2SE框架13
2.2.3 Java图形编程14
2.3 本章小结14
第3章 系统设计15
3.1 系统可行性分析15
3.1.1 技术可行性15
3.1.2 经济可行性15
3.1.3 操作可行性15
3.2系统需求分析16
3.2.1功能提示16
3.2.2 功能设计17
3.2.3具体设计18
3.2.4类的介绍22
3.2.5程序流程逻辑图29
第4章 测试分析32
4.1阐述扩展包32
4.2程序效果图测试32
4.3金属墙受到子弹攻击的测试37
4.4从下图可以看出,修改后金属墙也可以被摧毁!39
4.5血包效果图:血包会随机的移动,以下是血包所在的两次不同位置:39
4.6坦克吃血包增加生命值测试;41
4.7当家被攻击后结束游戏:43
4.8快捷键的测试:43
4.9坦克撞击边缘的效果:44
4.10用户赢得游戏后的效果测试:47
4.11典型数据测试:47
4.12完善功能:49
4.13 本章小结51
第5章 总结与展望51
5.1 总结51
5.2 设计中的不足之处52
5.3 展望52
致 谢52