拯救苹果VS太空大战
初一 记叙文 6394字 98人浏览 盘古之神7

1

J I A N G X I N O R M A L U N I V E R S I T Y

拯救苹果VS 太空大战

项目名称: 拯救苹果 院 系: 计算机信息工程学院 班 级: 计算机科学与技术一班 学生姓名: 马霄雪、缪佳琪 设计时间: 2014.8.10——2014.10.10 指导教师: 王岚 提交日期:

2014.10.28

2 目录

概述......................................................................... 4

1.1软件的的可行性分析 ..................................... 4

1.2软件的需求分析 . ............................................ 5

总体设计方案 .......................................................... 5

2.1设计出一款简单地打字母游戏 ....................... 5

2.2拯救苹果 ....................................................... 6

2.2.1界面美化 ................................................ 6

2.2.2功能全面化 . ............................................ 6

2.3 太空大战 ...................................................... 8

2.3.1 界面美化 ............................................... 8

2.3.2 功能全面化 . ........................................... 8

3 详细设计说明 .......................................................... 9

3.1 拯救苹果 ...................................................... 9

3.1.1主界面 . ................................................... 9

3.1.2 成功界面 ............................................. 10

3.1.3 失败界面 ............................................. 10

3.1.4 设置界面 ............................................. 10

3.1.5 退出界面 ............................................. 11

3.2 太空大战 .................................................... 11

3.2.1 简单打字母游戏的实现 . ....................... 11

3.2.2 界面美化的实现 . .................................. 12

3.2.3 菜单栏相应功能的实现 . ....................... 12

程序测试 ............................................................... 13

4.1 拯救苹果 .................................................... 13

4.2 太空大战 .................................................... 17

软件使用说明 ........................................................ 18

4 5.1 拯救苹果 .................................................... 18

5.2 太空大战 .................................................... 19

课程设计总结 ........................................................ 20

参考文献 ............................................................... 21

源程序(参考见附件) .......................................... 22

8.1 拯救苹果 .................................................... 22

8.2 太空大战 .................................................... 22

概述

1.1软件的的可行性分析

技术可行性:在这款打字游戏中,我们主要是以模仿金山打字通的一款经典游戏为主,对于游戏中所用的图片可以采用photoshop 进行相应的处理,对于技术,是采用面向对象的java 语言在Eclipse 开发平台上进行编程。

5 1.2软件的需求分析

在当今社会的背景下,电脑的发展不管是硬件还是软件每天都在不断的更新中,随着时代的脚步,人们在使用电脑过程中对打字速度的需求也越来越高。所以,我们设计这款软件的目的在于,用户通过游戏,一方面作为课后娱乐,一方面也提高了自己的打字速度,一举两得。

总体设计方案

对于这两款“拯救苹果”和“太空大战”的打字游戏,我们是先实现相应的功能,然后再一点一点的将界面美化。

2.1设计出一款简单地打字母游戏

6 用户通过敲打屏幕上出现的字母,如果正确则进行加分,并且此时再随机生成一个字母,从屏幕上方下落,如果用户敲打错误,则进行相应的扣分。

2.2拯救苹果

2.2.1界面美化

我们在第一款简单地打字游戏的基础上,加入背景图片,以及将每一个随机产生的字母放在一张小苹果的背景图片上,实现界面的美化。

2.2.2功能全面化

在前两者的基础上,我们进一步加大其功能,加上通关,连续五关,用户可以全胜,用户也可以自己手动设置游戏

7 难度以及控制苹果下落速度,进一步全面化。

最后,还加入了背景音乐,提供了一定的娱乐性质。

8 2.3 太空大战

2.3.1 界面美化

在这款太空大战的游戏中,我们插入飞机的字母背景图片,并且产生一些列随机的不同颜色的小星星,设置不同的下落轨迹以及云团,一定程度上实现立体的太空效果。对于击中的飞机我们还插入了爆炸图片,实现了动态效果。

2.3.2 功能全面化

在这款游戏中,我们加入了菜单栏,通过点击菜单栏的选项,实现相应的功能,如游戏等级设置,背景音乐设置,游戏状态设置(游戏开始,游戏暂停,游戏结束)。

9 详细设计说明

3.1 拯救苹果

3.1.1主界面

a. 游戏中下落的字母通过线程控制,通过一个布尔类型

的变量判断游戏开始与否,当游戏开始时,通过函数Math.Random()产生随机数,并进行强制类型转换,产生一组随机字母,并且字母的位置也是随机生成的,然后通过线程控制字母的下落,并且运用多支条件判断语句将下落的苹果分为三组,从一定程度上避免的两个苹果有重叠的情形。

b. 点击左下角的“开始”,“设置”,“暂停”,“结束”,“退出”

执行相应的操作,这里是通过坐标控制的,所以须注册相应的鼠标键盘事件。

c. 背景音乐的设置,是通过接口AudioClip ,封装了一个

musicStart()方法,当游戏开始时,背景音乐也同时播放。

d. 右下角的篮子图片,也是通过if 语句进行判断,根据

用户敲中的苹果数量进而显示装有不同苹果数量的篮子图片。

10 3.1.2 成功界面

a. 通过对用户敲中的字母进行判断,当用户敲中的字母

个数大于设置中设置的过关苹果数量时,游戏跳转到过关界面,用户在该界面中可以进行选择“继续(本关)”,“(开始)下一关”或“结束(游戏)”。

b. 在该界面中,利用的是插入的背景图片,所以对于相

关的按钮操作也是通过坐标控制的,只需注册相应的键盘事件即可,然后通过用户不同的操作,实现不同的功能。

3.1.3 失败界面

a. 通过对用户未敲中的字母进行判断,当用户未敲中的

字母个数大于设置中设置的失败的苹果数量,游戏跳转到失败界面,用户在该界面中可以进行选择“继续(本关游戏)”或者“结束(全局游戏)”。

b. 在该界面中,插入的同样是背景图片,所以实现接口

MouseListener ,注册鼠标事件,通过不同的操作,实现对应的功能。

3.1.4 设置界面

a. 对于该界面,首先通过GridLayout 控制输入面板,然

后通过FlowLayout 控制按钮面板,最后利用

11 BorderLayout 控制输入面板和按钮面板,三个布局组合,实现了如图所示的设置界面。

b. 对于设置中的一些数据(如:游戏等级,过关的苹果

数量,失败的苹果数量),通过静态修饰符static 进行声明,这样当其他类访问时,就不用实例化成对象,可以直接访问。

c. 对于三个按钮,实现接口ActionListener ,注册事件监

听进而响应事件。

3.1.5 退出界面

a. 该界面中插入了一张背景图片,通过实现接口

MouseListener 实现“退出(游戏)”或“取消”该窗口继续游戏。

3.2 太空大战

3.2.1 简单打字母游戏的实现

与第一款游戏相同,首先通过随机函数Math.Random()产生一系列的字母出现的随机位置,并且通过强制类型转换产生一系列的随机字母,通过注册键盘事件初步实现简单的打字母游戏。

12 3.2.2 界面美化的实现

在前一步的基础上,对于产生的每个随机字母添加上小飞机的背景图片,然后通过Math.Random()产生其他小星系(颜色随机,大小位置随机),然后加入云团,通过线程控制云团的运动。

3.2.3 菜单栏相应功能的实现

通过类JMenuBar 实现菜单栏,将JMenu 对象添加到菜单栏以构造菜单,通过JMenuItem 实现菜单中的项,通过实现接口ActionListener ,注册并响应相应的事件。 a. 游戏等级菜单项设置

游戏等级分为初级,中级,高级,通过JMenuItem 设置菜单项,初级设置飞机的个数为5,中级设置飞机的个数为8,高级设置飞机的个数为10。通过repaint()方法实现重画。

b. 背景音乐菜单项设置

将文件中所有的音乐名称存放在一个数组,然后分别将数组元素添加背景音乐的菜单项中,注册事件并通过接口AudioClip ,利用music.loop()实现音乐的循环播放。

c. 游戏状态菜单项设置

游戏状态栏中有“开始”,“暂停”,“结束”的菜单选项。

13 同样的,先为每个菜单项注册相应的事件,然后开始与暂停均通过一个布尔类型的变量控制线程的开始和暂停,进而实现重新开始游戏和暂停游戏。游戏的结束是通过System.exit(0)语句直接退出游戏。

d. 音乐状态菜单项设置

直接通过AudioClip 中的stop()方法停止播放当前的背景音乐。

程序测试

4.1 拯救苹果

a. 主界面

b. 开始游戏

14

c. 暂停游戏

d. 设置界面

15

e. 退出游戏

f. 成功跳转界面

16

g. 失败跳转界面

h. 获胜界面

17

4.2 太空大战

a. 主界面

b. 成功界面

18

c. 失败界面

软件使用说明

5.1 拯救苹果

a. 点击“开始”即可开始游戏,点击“暂停”即可暂停游戏,

点击“结束”表示结束当前游戏,然后点击“开始”可以重

19 新开始游戏。

b. 点击“退出”弹出游戏的退出界面,点击“确定”退出游

戏,点击“取消”可继续游戏。

c. 点击“设置”弹出游戏的设置界面,通过手动输入设置,

点击“默认”即可恢复游戏默认的初始值。

d. 当游戏过关胜利时,弹出游戏的过关界面,点击“继续”

表示停留在本关继续游戏,点击“下一关”表示进行下一关,点击“结束”表示结束当前游戏。当通关全部胜利时,即可看到满天下落的的星星。

e. 当游戏失败时,点击“继续”继续本关游戏,点击“结束”

退出当前游戏。

5.2 太空大战

a. 打开游戏即可进行游戏,通过敲打屏幕中出现的飞机

即可进行加分,敲打错误或者错过敲打则要进行相应的扣分,当总分小于零,游戏结束,跳转到失败界面,当总分大于20000时,游戏胜利,跳转到相应的成功界面,释放礼花。

b. 菜单栏的游戏等级分为初级,中级,高级,点击分别

开始不同等级的游戏,初级表示飞机的个数有5架,中级表示飞机的个数有8架,高级表示游戏的个数有10架。

20 c. 背景音乐:一进入游戏,有默认的背景音乐,用户可

以点击菜单栏中的“音乐状态设置”,点击“取消播放当前背景音乐”,即可结束播放,然后点击菜单栏中的“背景音乐”选项,可以选择自己喜欢的音乐作为背景音乐。

d. 菜单栏中的“游戏状态设置”,点击不同的菜单项“开始”

“暂停”“结束”,可分别实现开始游戏,暂停游戏,结束游戏的功能。

课程设计总结

其实,老师要求做课程设计并且还留有充足的时间还是挺好的,虽然我们做的还有一些缺陷,甚至可以更完美,或者将金山打字通其他几款经典游戏也给做出来,例如:打地鼠,青蛙过河,警察抓小偷,太空大战,虽然各有千秋,但也都有相同之处,不断地学习探索对自己还是很有帮助的。

这段时间以来,通过做这几款游戏,主要由以下感受及总结:

a. 兴趣是最好的老师,从一开始,通过项目驱动的方式,

选择自己感兴趣的一个课题,坚持下去,利用自己最开始的兴趣让整个学习热情过程持续不断。

b. 选择自己感兴趣的一个课题,坚持去做,哪怕有时只

21 是实现一个很小的功能,也很用成就感,激励你一直做下去。

c. 学习的过程就是不断摸索的过程,也许在做项目的时

候,会遇到或大或小的自己暂时不能解决的问题,不要泄气,要相信方法总比困难多,看看查看参考手册是否能找到自己想要的答案,实在不行,就去上网百度,看别人做的例子,把别人的东西理解透了,然后再用自己的思想去写出来,切切实实的把它变成自己的。

d. 单纯的看课本也许有时真的难以理解,动手编程真的

是一个挺好的解决办法,通过一遍一遍输入别人的例子,写的次数多了,也许就自然而然的就懂了。

e. 不要害怕尝试,有些方法你只有自己写出来运行了才

知道可不可以,遇到错误,首先自己要静下心来去查找,不要一上来就去问别人。

参考文献

【1】化志章 揭安全 钟林辉 著《java 程序设计-从方法学角度描述》机械工业出版社

【2】Herbert Schildt 著《新手学java7编程(第五版)》清华大学出版社

【3】王洋 著《java 就该这样学》电子工业出版社

22 【4】java 参考手册JDK API1.6.0中文版 源程序(参考见附件)

8.1 拯救苹果

① AppleGame.java

② Apple_win.java

③ Apple_fail.java

④ Apple_exit.java

⑤ Apple_setting.java

8.2 太空大战

SpaceWar.java