湖北大学J A V A课程设计论文题目坦克大战游戏姓名张诚学号 ****************姓名柳谦学号 ****************专业年级计算机科学与技术1401 指导教师王雷春职称副教授2016年 5月目录绪论 (4)1背景 (4)2课程设计目标及目的 (5)2.1课程设计的目标 (5)2.2课程设计的目的 (5)2.3可行性分析 (5)2.3.1技术可行性 (5)2.3.2经济可行性分析 (6)3概要设计 (6)4详细设计 (7)4.1项目与类的结构图 (7)4.2 各类实现的功能概要 (7)4.2.1 barrier包 (7)4.2.2 lightButton包 (7)4.2.3 Tankwar包 (7)4.2.4 mapediter包 (8)4.3 主要类的的UML图及主要成员变量和函数说明 (8)4.3.1 Barrier类 (8)4.3.2 LightButton类 (11)4.3.3 Mapediter类 (13)4.3.4 Main类 (15)4.3.5 Boom类 (18)4.3.6 Item类 (18)4.3.7 Missle类 (21)4.3.8 PanelShow类 (25)4.3.9 Tank类 (26)4.3.10 TankWar 类 (33)5运行结果 (40)6总结 (47)7参考文献 (47)8附录 (48)坦克大战摘要坦克大战是一款最初由日本南梦宫Namco游戏公司1985年在任天堂FC平台上,推出的一款多方位平面射击游戏。
一经推出,人气十分高涨,然后又陆续推出了GB,PC等版本,玩法也大大扩充,由最初的单人2D过关演变到如今的多人3D联网对战游戏,我们小时候应该都体验过,之前C#课程中已经了解过有关信息,如今就想同样以Java为载体编写一款坦克大战。
本课题展示了如何使用Java编写出能够实际运行的单人版坦克大战游戏。
课题介绍了项目的功能、类的设计和逻辑难点等重要点。
通过本课题,你可以了解到有关Java开发在实际运用中的基础知识、并对应用游戏开发有一定的新的认识。
绪论Java是由Sun Microsystems公司推出的Java面向对象程序设计语言。
Sun 公司在推出 Java 之际就将其作为一种开放的技术。
全球数以万计的Java 开发公司被要求所设计的Java软件必须相互兼容。
其官方定义是:“Java 编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言。
”。
其一经推出,就获得了众多程序员的青睐,发展至今已有21年的历史,仍然是当今最受追捧得的变成语言之一。
我们已经初步了解了Java的有关知识,想切身体验一下Java编程语言的特点,同时老师也要求我们完成课程设计,加上回想起小时候玩过的坦克大战游戏,于是就有了此设想。
1背景2015年11月编程语言排行榜中,Java语言仍然在持续上涨,其份额已经达到了20%占据榜首。
加上基于java开发的安卓手机系统是当今无可置疑的市场第一位,同时互联网也发展迅速,而在web开发领域,java也处于领导地位,当前很长一段时间之内,java编程语言的前途十分光明,我们很有必要掌握这门技术。
同时人们对游戏的热情经久不衰,而其中坦克大战作为一个推出已有10余年的游戏,其活力仍不减当年,至今仍有各种各样版本的坦克大战在各大平台上运行。
于是我们便想运用java开发一个简单的坦克大战游戏。
2课程设计目标及目的2.1课程设计的目标运用Java编程语言,编写出能够实际运行的单人坦克大战游戏2.2课程设计的目的1.了解Java应用游戏的开发基础2.获取有关Java编程开发的实际知识3.锻炼自身动手实践能力4.切身体验Java编程开发步骤5.于动手操作过程中验证所学知识2.3可行性分析2.3.1技术可行性我们设计的坦克大战入门版并没有什么高深的技术难题,尚未涉及到联网等事件,经查阅资料,我们认定,补充部分课堂外的知识,自身完全能够制作一个简单的坦克大战。
2.3.2经济可行性分析本组制作的坦克大战为入门版游戏,网上资源比较丰富,书籍图书馆也有收藏,除需花费一定时间外,无需其他经济支出,故较容易实现3概要设计本程序是一个有趣且富有挑战性的2D单人游戏。
本游戏为彩色界面,有主菜单,选择菜单等功能,其中主菜单包含有Start,Map,Help,Abort,Exit五个选项。
游戏过程中,玩家操纵己方坦克摧毁敌方坦克保卫己方家园以获得分数奖励。
4详细设计4.1项目与类的结构图4.24.2.1 barrier包Barrierlei类:描述素材的基本属性及排布方法EnemyBorn类:描述敌人出生点Gold类:描述金块障碍物Home类:描述基地Iron类:描述铁块障碍物SelfBorn类:描述自身出生点Wall类:描述砖块障碍物4.2.2 lightButton包LightButton类:实现初始界面的按钮动态点击效果,按下有下凹质感且亮度变化4.2.3 Tankwar包Help类:主界面help按钮呼出文本显示框Boom类:爆炸判定,效果显示Item类:随机掉落物品奖励Main类:游戏主界面Missle类:炮弹运行PanelShow类:右边统计栏信息Tank类:坦克基本属性,行动方式Tankwar类:游戏运行主界面4.2.4 mapediter包Mapediter类:查看地图,编辑新地图并检验地图是否合乎规则,保存地图。
4.3 主要类的的UML图及主要成员变量和函数说明4.3.1 Barrier类4.3.2 LightButton类4.3.3 Mapediter类2.dit 类4.3.4 Main类4.3.5 Boom类4.3.6 Item类4.3.7 Missle类4.3.8 PanelShow类4.3.9 Tank类style : intpower : intspeed : intdir : DirectionmyPlane_U : ImageIcon myPlane_R : ImageIcon myPlane_D : ImageIcon myPlane_L : ImageIconup : booleanleft : booleanright : booleandown : booleanself : booleanlive : booleanallTank : ArrayList<Tank> walls : ArrayList<Wall> irons : ArrayList<Iron> golds : ArrayList<Gold> home : Homemissles : ArrayList<Missle> noFire : longbooms : ArrayList<Boom>4.3.10 TankWar类5运行结果主界面开始运行结果Start复选界面地图制作界面Help信息栏界面:Abort信息栏界面:6总结在开发的过程中,本小组遇到了不少问题,各种开发包的缺少,严谨的各种参数合理的设置,解决开发中遇到的bug等等,但是经过上网搜索和自己尝试,终于解决了问题。
在这个过程中,不仅积累了知识,学会了团结合作,更重要的是学会了寻找信息的方法,对于日后的学习大有帮助。
由于能力不足,尚有很多设想未能实现,比如过关的游戏模式,boss的加入等等,我们将继续深入学习java,不断完善游戏的模式。
7参考文献1.Java 2 实用教程清华大学出版社 20112.Java游戏编程科学出版社 20043.Java游戏编程原理与实践教程人民邮电出版社 20134.韩顺平_循序渐进学java_从入门到精通_课件_笔记_坦克大战全过程/view/f7a2e083bceb19e8b8f6ba7f5.参考网站:////6.图片出自:/index.html8附录1.小组分工.docx2.代码文件:tankedanzhan1\src\barrier\Barrier.java tankedanzhan1\src\barrier\EnemyBorn.java tankedanzhan1\src\barrier\Gold.javatankedanzhan1\src\barrier\Home.javatankedanzhan1\src\barrier\Iron.javatankedanzhan1\src\barrier\SelfBorn.java tankedanzhan1\src\barrier\Wall.javatankedanzhan1\src\lightButton\LightButton.java tankedanzhan1\src\mapediter\MapEdit.java tankedanzhan1\src\tankwar\Abort.java tankedanzhan1\src\tankwar\Boom.java tankedanzhan1\src\tankwar\Help.javatankedanzhan1\src\tankwar\Item.java。