Java雷电游戏项目报告参考模板.docx
- 文档编号:2151152
- 上传时间:2022-10-27
- 格式:DOCX
- 页数:12
- 大小:18.70KB
Java雷电游戏项目报告参考模板.docx
《Java雷电游戏项目报告参考模板.docx》由会员分享,可在线阅读,更多相关《Java雷电游戏项目报告参考模板.docx(12页珍藏版)》请在冰豆网上搜索。
Java雷电游戏项目报告参考模板
北京青年政治学院小学期
达内JAVA课程项目报告
项目题目:
雷电游戏的设计与实现
专业班级:
学生姓名:
学生学号:
指导教师姓名:
一、系统目标
通过本游戏的设计,综合自己在校期间所学的理论知识,设计开发雷电游戏,使自己熟应用系统的开发过程,培养独立思考能力,检验学习效果和动手能力,初步掌握软件工程的系统理论,进一步巩固和加强自身对J2SE基础知识的理解,提高自己的编程水平,从而达到理论与实践相结合的目的。
通过本游戏的开发,主要实现游戏的可操作性及美观性,同时使自己对JAVA语言的了解更进一层,为将来的实际工作打下坚实的基础。
二、系统设计思路
1、定义窗口的属性
2、分别设置背景图片,英雄飞机图片,敌机图片,子弹图片,爆炸的图片
3、分别设置敌机和英雄飞机的运动轨迹
4、写出判断敌机是否与英雄飞机相撞,子弹是否击中敌机的代码
5、设置一些丰富游戏的细致属性,例:
绘制积分情况和血量图,子弹发射的频率等
三、系统详细设计
1、定义窗口属性
(1)创建一个窗体对象
(2)设置窗体的标题
(3)设置窗体的大小
(4)关闭窗口时退出程序
(5)设置窗体在屏幕当中显示的位置
(6)设置窗体的显示
注:
游戏面板应做到1、继承JPanel2、实现相应的接口线程和鼠标监听事件
2、定义并设置游戏中的主要元素
(1)定义一个英雄飞机并对其属性进行设置
(2)定义一个存放英雄机子弹的集合
(3)定义存储敌机的数组,敌机初始化值为10并将其放入到数组当中
(4)创建一个生成随机数的Random对象
(5)定义一个存放爆炸图片的集合
(6)设置敌机的属性,并将创建好的敌机添加到数组当中
(7)绘制图片。
分别绘制英雄机的子弹,英雄飞机,敌机,爆炸图片
(8)对子弹的设置。
将创建的子弹添加到存放子弹的集合当中,控制子弹的发射频率,让子弹飞,得到集合中的每一个子弹,当鼠标的某一个键按下时,发射子弹,英雄机子弹自动移动等。
(9)写出鼠标点击,释放,拖拽时调用的方法代码
3、做判断时所用的代码编写
(1)判断子弹是否击中敌机
获取敌机的中心坐标
判断是否击中敌机的心脏
(2)判断敌机是否与英雄机相撞等
4、丰富游戏的设置
绘制得分情况,绘制英雄飞机血量图和游戏结束等字体
四、系统实现(游戏代码展示)
importjava.awt.Color;
importjava.awt.Font;
importjava.awt.Graphics;
importjava.awt.event.MouseEvent;
importjava.awt.event.MouseListener;
importjava.awt.event.MouseMotionListener;
importjava.util.ArrayList;
importjava.util.List;
importjava.util.Random;
importjavax.swing.ImageIcon;
importjavax.swing.JPanel;
publicclassGamePanelextendsJPanelimplementsRunnable,MouseListener,
MouseMotionListener{
privateFlightheroFlight;
privateList
//定义存储敌机的数组
privateFlight[]flights;
//初始化敌机为10架
privateintnum=10;
//创建一个生成随机数的Random对象
privateRandomran=newRandom();
//定义一个统计积分的属性
privateintscore;
//定义一个存放爆炸图片的集合
privateList
//创建面板的构造器,对属性进初始化
publicGamePanel(){
//创建存放爆炸图片集合的对象
bomPics=newArrayList
//创建英雄飞机的对象,并对其属性进行设置
heroFlight=newFlight();
heroFlight.setWidth(80);
heroFlight.setHeight(80);
heroFlight.setX(200);
heroFlight.setY(300);
heroFlight.setDirection(Flight.UP);
heroFlight.setImage(newImageIcon("src/images/hero.gif").getImage());
heroFlight.setPanel(this);
heroFlight.setSpeed(3);
heroFlight.setWasFire(false);
heroFlight.setBload(100);
//创建存储英雄子弹的集合对象
heroFires=newArrayList
//对存放敌机的数组进行创建并进行元素的初始化
flights=newFlight[num];
//创建敌机并将其放入到数组当中
for(inti=0;i FlightenemyFlight=newFlight(); //设置敌机的属性 enemyFlight.setWidth(40); enemyFlight.setHeight(40); enemyFlight.setX(ran.nextInt(500)); enemyFlight.setY(-ran.nextInt(600)); enemyFlight.setDirection(ran.nextInt(100)%3); enemyFlight.setSpeed(ran.nextInt(3)+2); enemyFlight.setImage( newImageIcon("src/images/enemyPlane.gif") .getImage()); enemyFlight.setPanel(this); enemyFlight.setWasFire(false); //将创建好的敌机添加到数组当中 flights[i]=enemyFlight; } } //绘制图片 @Override publicvoidpaint(Graphicsg){ super.paint(g); this.setBackground(Color.BLACK); g.drawImage( newImageIcon("src/images/back3.gif").getImage(), 0,0,500,600,this); if(heroFlight.getBload()>0){ //绘制英雄机的子弹 for(inti=0;i FireheroFire=heroFires.get(i); heroFire.drawFire(g); } //绘制英雄飞机 heroFlight.drawFlight(g); //绘制敌机 for(inti=0;i flights[i].drawFlight(g); } //绘制爆炸图片 for(inti=0;i BomPicbomPic=bomPics.get(i); bomPic.drawBom(g); //-------------- bomPics.remove(bomPic); } }else{ g.setColor(Color.RED); g.setFont(newFont("宋体",Font.BOLD+Font.ITALIC,30)); g.drawString("游戏结束",200,260); } //绘制积分情况可血量图 g.setColor(Color.RED); g.setFont(newFont("宋体",Font.BOLD,20)); g.drawString("积分: "+score+"分",370,30); g.drawString("生命",20,30); g.setColor(Color.WHITE); g.drawRect(65,17,100,10); g.setColor(Color.RED); g.fillRect(65,17,heroFlight.getBload(),11); } @Override publicvoidrun(){ //用于控制子弹发射的频率 intcount=0; while(true){ //敌机运动 for(inti=0;i flights[i].flightMove(); if(flights[i].getY()>this.getHeight()){ flights[i].setY(-ran.nextInt(500)); flights[i].setX(ran.nextInt(500)); } } if(heroFlight.isWasFire()&&count%10==0){ //说明发射子弹,创建子弹对象 FireheroFire=newFire(); heroFire.setWidth(40); heroFire.setHeight(40); heroFire.setX(heroFlight.getX()+heroFire.getWidth()/2); heroFire.setY(heroFlight.getY()); heroFire.setDirection(Fire.UP); heroFire.setSpeed(5); heroFire.setImage( newImageIcon("src/images/fire.gif").getImage()); heroFire.setPanel(this); //将创建的子弹添加到存放子弹的集合当中 heroFires.add(heroFire); } //让子弹飞 for(inti=0;i //得到集合当中的每一个子弹 FireheroFire=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 雷电 游戏 项目 报告 参考 模板