Java坦克大战设计报告(7)
时间:2025-04-20
时间:2025-04-20
图1-3类之间的关系
设计一个系统的时候,把不同功能的具体实现放到不同的类里面,这样便于以后程序的扩展以及修改;类的名称最好是体现出这个类实现的功能,这样可以达到看类名就知道这个类的功能,方便以后程序的维护。
本系统的实现一共用到了以上的12个类,它们之间的关系见图1-3所示,箭头方向代表是被依赖的类,各个类实现了一些单独的功能。
1.4详细设计及实现 1.4.1界面及布局设计
系统的整体布局为:BorderLayout布局, 采用了菜单、按钮、面板…等组件,菜单主要包括选择开始新游戏,暂停游戏,继续上局游戏,存盘退出,退出游戏,游戏设置等功能。
1.4.2开机欢迎画面的实现方法
FirstPanel类是javax.swing包中JPanel容器的一个子类,它主要是重写了paint()方法,先从文本文件里读取数据,然后把数据通过画笔画在画板上,标明FirstPanel类的主要成员变量和方法以及和TankGames类之间组合关系的UML图如图1-4所示。
图1-4 FirstPanel类的UML图
以下是UML图中有关数据和方法的详细说明。 1、成员变量
(1)word是WordMove型数据,它是用来改变文字的纵坐标的,使文字动态的画在画板上。
(2)fr是FileReader型数据,它是用来读取文本文件的。
(3)br是BufferedReader型数据,是缓冲输出流,用它来读取fr里面的数据。 (4)str是String型数据,接受读取到得文本文件。
(5)aa是Vector<String>型数据,是类型为字符串类型的集合,用它来装一个个str。
(6)img是Image型数据,是图片类型数据,用来设置背景图片的。 (7)f,f1,f2都是Font类型的数据,用来确定动态显示字的字体。 2、方法
(1)FirstPanel()是构造方法,负责完成FirstPanel容器的初始化。
(2)容器调用paint(Graphics g)方法可以在画板上把文本文件画出来,以便动态的显示出来。
(3)容器调用show()方法可以将画板上的文字显示出来。
(4)容器调用run()方法可以改变文字的纵坐标,使原本静态的文字运动起来。 综上所述,FirstPanel创建的容器效果如图1-5所示。
图1-5 FirstPanel创建的容器
1.4.3单人游戏的实现方法
mypanel类是javax.swing包中JPamel类的子类,所创建的对象是一个面板,面板上有坦克大战的敌我双方坦克,和战场,以及我军消灭敌军数量的标识,标明mypanel类的主要成员变量、方法以及和TankGames类之间组合关系的UML如图1-6所示。
图1-6 mypanel类的UML图
以下是UML图中有关数据和方法的详细说明。 1、成员变量
(1)isZanT、isSounds、isMusic都是boolean类型数据,分别确定是否游戏暂停,是否使用背景音乐,是否使用音效。
(2)word是WordMove类型数据,用于制造动态字。
(3)mt,en分别是mytank和enemyTank类型数据,用于在画板上定义敌我双方坦克。
(4)zd,zhd分别是ZDan和ZhaDan类型数据,在画板上定义子弹和炸弹。 (5)image1、imge2、imgae3都是Image类型数据,在击中坦克时,将这三幅图片画出来,制造爆炸效果。
(6)f是Font类型数据,用于定义游戏结束时动态字的字体。 2、方法
(1)mypanel()构造方法,初始化定义的成员变量。
(2)paint(Graphics g)在画板上画坦克,画子弹,画炸弹等各种作战场面。
(3)addmytank()方法用来增加我军坦克,我军坦克的生命值是3,当我军生命值大于0时,每死一次就增加一辆我军坦克,直至我军坦克生命值为0。
(4)addEnemytank()方法是用来增加敌军坦克,敌军坦克默认情况下是20辆,而战场只允许敌军4辆坦克作战,所以每击毁敌军一辆坦克就会调用此方法增加一辆敌军坦克,直至敌军坦克数量小于或者等于4。 (5)zhanji()方法是用来记录我军击毁坦克数量。 (6)Bomp()方法是在击中坦克时画出爆炸效果。 (7)drawtank()用来在画板上画出敌我双方坦克。 (8)drawzd()用来在画板上画子弹。
(9)shotEnemytank()是在我军发射子弹时调用的,用户按下指定键就会激发此方法。
(10)shotmytank()是敌军发射子弹时调用此方法。 (11)isjizhong()是用来判断子弹是否击中坦克。
(12)GameOver()是在游戏结束时调用的,用来描述游戏结束。 因此mypanel创建的画板的效果如图1-7所示。
图1-7 mypanel创建的画板的效果
爆炸效果如下图:
…… 此处隐藏:7字,全部文档内容请下载后查看。喜欢就下载吧 ……