坦克大战设计.docx
《坦克大战设计.docx》由会员分享,可在线阅读,更多相关《坦克大战设计.docx(36页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、精品文档,仅供学习与交流,如有侵权请联系网站删除湖 北 大 学JAVA课程设计论文题 目 坦克大战游戏 姓 名 张诚 学 号 2014221119200156姓 名 柳谦 学 号 2014221119200091专业年级 计算机科学与技术1401 指导教师 王雷春 职 称 副教授 2016年 5月目录绪论41背景42课程设计目标及目的52.1课程设计的目标52.2课程设计的目的52.3可行性分析52.3.1技术可行性52.3.2经济可行性分析63概要设计64详细设计64.1项目与类的结构图64.2 各类实现的功能概要64.2.1 barrier包64.2.2 lightButton包74.2.
2、3 Tankwar包74.2.4 mapediter包74.3 主要类的的UML图及主要成员变量和函数说明74.3.1 Barrier类74.3.2 LightButton类104.3.3 Mapediter类124.3.4 Main类144.3.5 Boom类174.3.6 Item类194.3.7 Missle类224.3.8 PanelShow类224.3.9 Tank类224.3.10 TankWar 类225运行结果226总结297参考文献298附录30坦克大战摘要坦克大战是一款最初由日本南梦宫Namco游戏公司1985年在任天堂FC平台上,推出的一款多方位平面射击游戏。一经推出,人
3、气十分高涨,然后又陆续推出了GB,PC等版本,玩法也大大扩充,由最初的单人2D过关演变到如今的多人3D联网对战游戏,我们小时候应该都体验过,之前C#课程中已经了解过有关信息,如今就想同样以Java为载体编写一款坦克大战。本课题展示了如何使用Java编写出能够实际运行的单人版坦克大战游戏。课题介绍了项目的功能、类的设计和逻辑难点等重要点。通过本课题,你可以了解到有关Java开发在实际运用中的基础知识、并对应用游戏开发有一定的新的认识。绪论Java是由Sun Microsystems公司推出的Java面向对象程序设计语言。Sun 公司在推出 Java 之际就将其作为一种开放的技术。全球数以万计的
4、Java 开发公司被要求所设计的 Java软件必须相互兼容。其官方定义是:“Java 编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言。”。其一经推出,就获得了众多程序员的青睐,发展至今已有21年的历史,仍然是当今最受追捧得的变成语言之一。 我们已经初步了解了Java的有关知识,想切身体验一下Java编程语言的特点,同时老师也要求我们完成课程设计,加上回想起小时候玩过的坦克大战游戏,于是就有了此设想。1背景2015年11月编程语言排行榜中,Java语言仍然在持续上涨,其份额已经达到了20%占据榜首。加上基于java开发的安卓手机系统是当今无可
5、置疑的市场第一位,同时互联网也发展迅速,而在web开发领域,java也处于领导地位,当前很长一段时间之内,java编程语言的前途十分光明,我们很有必要掌握这门技术。同时人们对游戏的热情经久不衰,而其中坦克大战作为一个推出已有10余年的游戏,其活力仍不减当年,至今仍有各种各样版本的坦克大战在各大平台上运行。于是我们便想运用java开发一个简单的坦克大战游戏。2课程设计目标及目的2.1课程设计的目标 运用Java编程语言,编写出能够实际运行的单人坦克大战游戏2.2课程设计的目的1.了解Java应用游戏的开发基础2.获取有关Java编程开发的实际知识3.锻炼自身动手实践能力4.切身体验Java编程开
6、发步骤5.于动手操作过程中验证所学知识2.3可行性分析2.3.1技术可行性我们设计的坦克大战入门版并没有什么高深的技术难题,尚未涉及到联网等事件,经查阅资料,我们认定,补充部分课堂外的知识,自身完全能够制作一个简单的坦克大战。2.3.2经济可行性分析 本组制作的坦克大战为入门版游戏,网上资源比较丰富,书籍图书馆也有收藏,除需花费一定时间外,无需其他经济支出,故较容易实现3概要设计坦克大战入门板本程序是一个有趣且富有挑战性的2D单人游戏。本游戏为彩色界面,有主菜单,选择菜单等功能,其中主菜单包含有Start,Map,Help,Abort,Exit五个选项。游戏过程中,玩家操纵己方坦克摧毁敌方坦克
7、保卫己方家园以获得分数奖励。坦克大战游戏逻辑实现界面显示游戏对象图形绘制开火逻辑坦克绘制玩家坦克主界面子弹绘制碰撞检测敌人坦克关于界面帮助界面道具绘制背景绘制升级游戏道具设置界面4详细设计4.1项目与类的结构图barrierTankwarmapediterlightButton4.2 各类实现的功能概要 4.2.1 barrier包Barrierlei类:描述素材的基本属性及排布方法EnemyBorn类:描述敌人出生点Gold类:描述金块障碍物Home类:描述基地Iron类:描述铁块障碍物SelfBorn类:描述自身出生点Wall类:描述砖块障碍物4.2.2 lightButton包Light
8、Button类:实现初始界面的按钮动态点击效果,按下有下凹质感且亮度变化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类BarrierSIZE:intx:inty:inthp:int
9、face:ImageIconBarrier(int,int)draw(Graphics):voidgetFace():ImagegetHp():intgetX():intgetY():intsetFace(Image):voidsetHp(int):voidsetX(int):voidsetY(int):void主要成员变量含义SIZE:int障碍物方块大小 x:int障碍物x坐标 y:int障碍物y坐标hp:int障碍物的血量face:Image障碍物贴图主要成员函数含义Barrier(int,int)障碍物的坐标draw(Graphics):void素材绘制 getFace():Image
10、返回贴图getHp():int返回血量值getX():int返回x坐标getY():int返回y坐标setFace(Image):void插入贴图setHp(int):void赋予血量值setX(int):void赋予x坐标setY(int):void赋予y坐标4.3.2 LightButton类LightButtonshadowOffsetX:floatshadowOffsetY:floatshadowColor:colorshadowDirection:intnormalButton:ImagenormalButtonPressed:ImagebuttonHighlight:Imagesh
11、adowDistance:intsourceInsets:InsetsbuttonDimension:DimensionbuttonForeground:colorbuttonForeground:fontLightButton(string)LightButton(int,int,int,int,string)LightButton(Action)LightButton()loadImage(String):ImagecomputeShadow():voidgetImage(boolean):ImagepaintComponent(Graphics):voidtileStretchPaint
12、(Graphics, JComponent, BufferedImage, Insets):void主要成员变量含义shadowOffsetX : float阴影向x偏移量shadowOffsetY : float阴影向y偏移量shadowColor : Color按钮背景颜色shadowDirection : int投影方向normalButton : Image原始图片normalButtonPressed : Image过度图片buttonHighlight : Image修改后图片shadowDistance : int阴影距离sourceInsets : Insets透明度butto
13、nDimension : Dimension高度及宽度buttonForeground : Color按钮文字颜色buttonFont : Font字体主要成员函数含义LightButton(String)构建按钮LightButton(int, int, int, int, String)按钮参数设置LightButton(Action)定义变化LightButton()加载动态效果tileStretchPaint(Graphics, JComponent, BufferedImage, Insets):void绘制动态效果4.3.3 Mapediter类2. dit 类MapEditCOL
14、S:intROWS : intf : JDialogp : JPanelbut : ButtonXimage : Imagepp : JPanelbutLoad : JButtonbutSave : JButtonbutExit : JButtonfs : FileNameExtensionFilterfc : JFileChooserm : MainMapEdit(Main) actionPerformed(ActionEvent):void主要成员变量含义COLS : int地图行数ROWS : int地图列数f : JDialog对话框p : JPanel面板容器 地图载体but : B
15、uttonX更改处的方块image : Image素材图片pp : JPanel面板容器 对话框载体butLoad : JButton原地图按钮butSave : JButton保存按钮butExit : JButton退出按钮m : Main新地图主要成员函数含义MapEdit(Main)主函数 构建地图actionPerformed(ActionEvent):void检验新地图是否合乎规则,否则输出提示框4.3.4 Main类Mainf : JFramep : PanelXbutStart : LightButtonbutEdit : LightButtonbutHelp : LightB
16、uttonbutAbort : LightButtonbutExit : LightButtonwidth : intheight : intset : JDialoghelp : Helpabout : Abortmap : Stringmax : intstyle : intMain()main(String):voidover():voidactionPerformed(ActionEvent):voiddialog():voidsetF(JFrame):voidgetF():JFrame主要成员变量含义f : JFrame开始界面框架butStart : LightButton开始游戏
17、按钮butEdit : LightButton编辑地图按钮butHelp : LightButton帮助栏按钮butAbort : LightButton关于信息栏按钮butExit : LightButton退出按钮width : int界面长度height : int界面宽度help : HelpHelp信息栏主要成员函数含义Main()构造开始界面主方法main(String):void构造界面over():void界面渐大效果actionPerformed(ActionEvent):void鼠标监听 确定程序走向dialog():void构造游戏开始前设置界面4.3.5 Boom类Bo
18、omy : intx : intcount : intboom : ImageIconlive : booleanBoom(int, int)drawBoom(Graphics):voidrun():voidisLive():boolean主要成员变量含义y : int爆炸位置横坐标x : int爆炸位置纵坐标count : int爆炸效果演变计数boom : ImageIcon图片live : boolean爆炸是否进行主要成员函数含义Boom(int, int)位置drawBoom(Graphics):void绘制爆炸效果run():void控制变化过程向后进行isLive():void判
19、定是否爆炸4.3.6 Item类Itemr : Randomx : inty : intstyle : intface : Imagelive : booleanflash : booleantanks : ArrayListbooms : ArrayListhome : Homeirons : ArrayListItem(ArrayList, ArrayList, ArrayList, Home)draw(Graphics)run():voiduse(Tank):voidhomeP(int, int):voidsetLive(boolean):voidisLive():boolean主要成员
20、变量含义r : Random随机生成数x : int横坐标y : int纵坐标face : Image游戏素材图片live : boolean是否存在tanks : ArrayList坦克booms : ArrayList爆炸home : Home基地irons : ArrayList添加素材图片主要成员函数含义Item(ArrayList, ArrayList, ArrayList, Home)添加素材draw(Graphics):void绘制效果run():void判断是否被坦克吃掉use(Tank):void为坦克添加效果homeP(int, int):void4.3.7 Missle类
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 坦克 大战 设计
限制150内