2022年Java课程设计小游戏.pdf
《2022年Java课程设计小游戏.pdf》由会员分享,可在线阅读,更多相关《2022年Java课程设计小游戏.pdf(28页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Java 课程设计小游戏高级语言程序设计课程设计报告1、 程序设计说明书【设计题目】雷霆行动游戏程序【问题描述】雷霆行动就是一款供大家休闲娱乐的小游戏,游戏通过鼠标控制我方飞机hero 的移动 ,达到躲闪敌机的目的;利用鼠标键发射子弹与导弹,达到击毁敌机的目的,摧毁敌机有积分。此游戏为闯关积分类小游戏。【软件功能】1、按鼠标左键, 游戏开始。2、利用鼠标移动控制hero 自由移动 , 闪躲敌方子弹。3、利用鼠标左键发射子弹, 实现打中敌方飞机的功能; 利用鼠标右键释放导弹, 实现摧毁大量敌机的功能 ,击中一个敌方飞机积一分。 4、hero 碰到对方子弹会消耗生命, 消耗生命的多少, 依据子弹的
2、不同而不同。5、一关之后会进入下一关。6、游戏右上角红色的进度条表示hero 的生命 , 当红色全部消失之后, 游戏结束 , 显示死亡。 7 、游戏结束后, 可重新开始 , 同 1。【算法思想】1、创建游戏主界面, 确定窗口的坐标。 2、设计游戏开始界面显示信息及信息坐标。3、设置游戏进行中的信息,hero 的移动、释放子弹与导弹, 达到击毁敌机的目的。4、处理游戏进行中的子弹、大爆、爆炸、敌机消失与存在的条件。5、设置进入下一关的条件。6、设计游戏结束界面显示信息及信息坐标。7、处理游戏重新开始满足的条件。8、装载图像。9、对游戏进行调试与改进, 使这个游戏更加完善。【类的设计】本程序共有七
3、个类: 1、 MainPanel 属性 :BBv为子弹数组,EEv 为敌机数组,BOMBv为爆炸数组,EBv为敌机子弹数组,DBv 为 大 爆 数 组 ,E-num为 敌 机 数 量 ,E-max敌 机 最 大 数 ,E-vel为 敌 机 速 度 ,E-mov为 敌 机横移几率 ,E-hit 为敌机开火几率,Sum 为击毁敌机数量,hero-hp 为 hero 生命 ,back 至db-2均为图片 ,tracker 为媒体跟踪器,y 为背景滚动变量,seq 为 hero 的动画变量 ,isfire 为 hero开火 ,isblast 为就是否发爆 ,blastnum 为大爆的数量 ,blast
4、c 为控制大爆 ,f、ff、s、ss 均为游戏界面上显示的信息; 方法 :MainPanel(Game) 构造方法,paint(Graphics) 建立游戏开始界面如显示的文字,run() 控制对 象 移 动 ,BBmove(int,int)子 弹 的 移 动 方 法 ,DBmove(int,int)大 爆 的 移 动 方 法 , mouseDragged(MouseEvent) 鼠 标 的 拖 拽 用 来 保 证hero 不 出 界 ,mouseMoved(MouseEvent) 鼠 标 的 移 动 用 来 控 制hero 移 动 ,mousePressed(MouseEvent) 鼠 标
5、按 键 在 组 件 上 按 下 时 调用 ,重新开始游戏,mouseClicked(MouseEvent) 鼠标按键在组件上单击(按下并释放) 时调 用 , 释 放 子 弹 ,mouseReleased(MouseEvent) 鼠标 按 钮 在 组 件 上 释放 时 调 用 , mouseEntered(MouseEvent) 鼠 标 进 入 组 件 上 调 用 ,mouseExited(MouseEvent)鼠 标 离 开 组件时调用 ; 功能 :游戏的开始、运行、结束与重新开始。2、Game 继承 JFrame 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢
6、迎下载 名师归纳 - - - - - - - - - -第 1 页,共 28 页 - - - - - - - - - - Java 课程设计小游戏属性 :x 为游戏主界面的横坐标,y 为游戏主界面的纵坐标,pl 为 hero 的子弹 ; 方法 :Game()创建游戏主界面,main(String ) 主方法 ; 功能 :创建出游戏的主界面。3、Blast(大爆 ) 属性 :x 为大爆的横坐标,y 为大爆的纵坐标,cont 为数量 ,islive 为 hero 存活 ; 方法 :Blast(int,int) 建立大爆的坐标,grow() 构造方法 ; 功能 :构造一个大爆(导弹爆炸 )的类。4、
7、Bomb( 爆炸 ) 属性 :x 为爆炸的横坐标,y 为爆炸的纵坐标,cont 为数量 ,islive 为 hero 存活 ; 方法 :Bomb(int,int) 建立爆炸的坐标,grow() 构造方法 ; 功能 :构造一个爆炸(子弹击中敌机)的类。5、Enemy(敌机 ) 属性 :x 为敌机的横坐标,y 为敌机的纵坐标,vx 敌机数组的横坐标,vy 为敌机数组的纵坐标, r 为敌机横移几率,f 为敌机开火几率,toleft 为向左移动敌机,toright 为向右移动敌机; 方 法 :Enemy(int,int,int,int)建 立 敌 机 的 坐 标 ,move(int) 实 现 敌 机
8、的 移 动 ,tofire() 敌 机 释放子弹 ,hit(int,int) 敌机的子弹攻击hero,hitblast(int,int) 子弹产生爆炸 ; 功能 :构造一个敌机的类,实现敌机的移动。6、EnemyBullet( 敌机子弹 ) 属性 :x、y 为敌机子弹的坐标,vx、vy 为敌机子弹数组的坐标; 方法 :move()实现敌机子弹的移动,hit(int,int) 敌机子弹攻击hero; 功能 :构造一个敌机子弹的类,实现敌机子弹的移动与攻击。7、PlayerBullet(hero 子弹 ) 属性 :x、y 为 hero 子弹的坐标 ,v 为 hero 子弹的速度 ; 方法 :mov
9、e()实现 hero 子弹的移动 ,hit(int,int)hero 子弹攻击敌机; 功能 :构造一个hero 子弹的类 ,实现 hero 子弹的移动与攻击。【用户界面】游戏开始界面精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 2 页,共 28 页 - - - - - - - - - - Java 课程设计小游戏游戏进行中界面精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 3 页,共 28 页 - - - - -
10、- - - - - Java 课程设计小游戏游戏结束界面精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 4 页,共 28 页 - - - - - - - - - - Java 课程设计小游戏【程序技巧】1、建立一个主类,其余六个类均通过这个主类来调用2、响应鼠标事件3、用户界面采用图形用户界面4、利用媒体跟踪器监测图像的装载5、无效的子弹与被摧毁的敌机能及时处理,未被摧毁的敌机与子弹可以保留6、游戏失败可以重新开始【模块划分及调用关系】【模块流程图】游戏界面主框架模块: 游戏操作模块: 游戏开始Game:
11、 游 戏主界面模块MainPanel: 游戏主 要 运 行 步 骤模块Enemy: 敌创建 MainPanel 游戏运行模块创建 Game 游戏主界面模块游戏开始精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 5 页,共 28 页 - - - - - - - - - - Java 课程设计小游戏【运行说明】按鼠标左键开始游戏,鼠标移动控制hero 的移动 ,按鼠标左键打出子弹,攻击敌机 ,每打死一个敌机积一分 ,按鼠标右键放导弹,实现摧毁大量敌机的功能,本游戏共三关,若游戏中途失败 ,可以重新开始。2、
12、程序上机调试报告【语法错误及其排除】1、无法更改导弹数量。解决方法:添加 Blastnum=10 语句 ,即有十个导弹; 2、个别图片运行不出来。解决方法:将图片格式与程序中相匹配; 3、文字在程序中写出,但在游戏过程中不显示。解决方法:将文字的坐标调试好。【算法错误及其排除】1、点击鼠标右键无法实现大爆。解决方法:mouseReleased(MouseEvent e) 2、hero 的子弹打中敌机后敌机没有消失。解决方法:EBv 、remove(i); 3、 程序测试结果【测试数据】我方飞机的移动,就是否能打出子弹,导弹的释放 ,能否摧毁敌方飞机,就是否可以积分。【输出结果】游戏初始化就精品
13、资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 6 页,共 28 页 - - - - - - - - - - Java 课程设计小游戏子弹爆炸情况精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 7 页,共 28 页 - - - - - - - - - - Java 课程设计小游戏大爆(导弹爆炸 )、飞机移动精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - -
14、- - - - -第 8 页,共 28 页 - - - - - - - - - - Java 课程设计小游戏【收获及体会】本来以为课程设计就是个很简单的事情,但就是随着程序的编写,发现这就是一个非常不容易的过程 ,通过去图书馆与上网查找资料,我发现我还有很多不足,并通过查 JDK 手册我也学习了很多知识,我意识到 JDK 手册就是非常好的一种学习Java的工具 ,Java在生活中有很重要的应用性,这提高了我的学习兴趣。编写程序的过程中我也遇到了很多困难,当程序出现错误运行不出来时,我非常着急 ,在冷静地分析、调通程序之后,我意识到有耐心、有恒心就是多么重要啊!在今后的学习生活中,我会更加努力
15、,认真、耐心、细心地处理事情,相信我会逐步提高自己的能力。4、 源程序代码 (Java 语言 ,要求有尽可能多的注释语句) package lightning; import java 、awt、*; import java 、awt、Image; import java 、awt、Toolkit; import java 、awt、MediaTracker; 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 9 页,共 28 页 - - - - - - - - - - Java 课程设计小游戏import
16、 javax 、swing、*; import java 、 awt、event、*; import java 、 util、EventListener; import java 、 util、Vector; import lightning 、*; public class MainPanel extends JPanel implements Runnable,MouseMotionListener,MouseListener Game a; Vector BBv=new Vector();/ 子弹数组Vector EEv=new Vector();/ 敌机数组Vector BOMBv=n
17、ew Vector();/ 爆炸数组Vector EBv=new Vector();/ 敌机子弹数组Vector DBv=new Vector();/ 大爆数组int E_num; int E_max;/ 敌机最大数int E_vel;/ 敌机速度int E_mov;/ 敌机横移几率int E_hit;/ 敌机开火几率int Sum;/ 击坠敌机数量,击坠一个敌机积一分int hero_hp;/hero 生命Image back=null;/ 背景图片Image hero=null;/hero 图片Image fire=null;/hero子弹图片Image fire_l=null;/hero
18、子弹 2 图片Image el_0=null;/ 敌机图片Image el_0_l=null;/ 敌机 left 图片Image el_0_r=null;/ 敌机 right 图片Image el_bb=null;/ 敌机子弹图片Image el_bb_0=null;/ 敌机子弹 2 图片Image bomb_0=null;/ 敌机爆炸0 图片Image bomb_1=null;/ 敌机爆炸1 图片Image bomb_2=null;/ 敌机爆炸2 图片Image bomb_3=null;/ 敌机爆炸3 图片Image db_1=null;/ 大爆 1 图片Image db_2=null;/
19、大爆 2 图片MediaTracker tracker=null;/ 媒体跟踪器 ,用来监测图像的装载Thread Game_star; int y;/ 背景滚动变量int hero_oldx,hero_oldy;/hero的旧 x,y 坐标int hero_x,hero_y;/hero 的新 x,y 坐标int seq;/hero 的动画变量boolean isfire;/hero 开火boolean isblast;/就是否发爆int BBx,BBy;/ 子弹的横纵坐标int DBx,DBy;/ 大爆的横纵坐标int blastnum;/ 大爆的数量boolean blastc;/控制大爆
20、精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 10 页,共 28 页 - - - - - - - - - - Java 课程设计小游戏Font f=new Font( 黑体 ,Font、BOLD,30); Font ff=new Font( 黑体 ,Font、 BOLD,90); Font S=new Font( 幼圆 ,Font、BOLD,15); Font SS=new Font( 幼圆 ,Font、BOLD,25); MainPanel(Game a) this、a=a; tracker=new
21、MediaTracker(this); /将以下图片加到媒体跟踪器中back=Toolkit 、getDefaultToolkit() 、getImage(MainPanel、 class、getResource(back3、jpg); tracker、addImage(back,0); hero=Toolkit 、getDefaultToolkit() 、getImage(MainPanel 、class、getResource(hero、 jpg); tracker、addImage(hero,1); fire=Toolkit 、getDefaultToolkit() 、getImage(
22、MainPanel 、class、getResource(herozidan、 jpg); tracker、addImage(fire,2); fire_l=Toolkit 、getDefaultToolkit() 、getImage(MainPanel 、class、getResource(herozidan2、jpg); tracker、addImage(fire_l,3); el_0=Toolkit 、 getDefaultToolkit() 、 getImage(MainPanel、class、getResource(diji 、jpg); tracker、addImage(el_0,
23、4); el_0_l=Toolkit 、getDefaultToolkit() 、 getImage(MainPanel、class、 getResource(dijileft 、jpg); tracker、addImage(el_0_l,5); el_0_r=Toolkit 、 getDefaultToolkit() 、 getImage(MainPanel、class、getResource(dijiright 、jpg); tracker、addImage(el_0_r,6); el_bb=Toolkit 、getDefaultToolkit() 、getImage(MainPanel
24、、class、getResource(dijizidan 、jpg); tracker、addImage(el_bb,7); el_bb_0=Toolkit 、getDefaultToolkit() 、getImage(MainPanel 、class、getResource(el_bb_0 、jpg); tracker、addImage(el_bb_0,8); bomb_0=Toolkit 、getDefaultToolkit() 、getImage(MainPanel 、class、 getResource(bomb_0、jpg); tracker、addImage(bomb_0,9);
25、bomb_1=Toolkit 、getDefaultToolkit() 、getImage(MainPanel 、class、 getResource(bomb_1、jpg); tracker、addImage(bomb_1,10); bomb_2=Toolkit 、getDefaultToolkit() 、getImage(MainPanel 、class、 getResource(bomb_2、jpg); tracker、addImage(bomb_2,11); bomb_3=Toolkit 、getDefaultToolkit() 、getImage(MainPanel 、class、
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022 Java 课程设计 小游戏
限制150内