Java雷电游戏项目报告参考模板.docx
《Java雷电游戏项目报告参考模板.docx》由会员分享,可在线阅读,更多相关《Java雷电游戏项目报告参考模板.docx(12页珍藏版)》请在冰豆网上搜索。
![Java雷电游戏项目报告参考模板.docx](https://file1.bdocx.com/fileroot1/2022-10/27/05472f4c-1129-453b-a22e-a617f96d8db3/05472f4c-1129-453b-a22e-a617f96d8db31.gif)
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;
privateListheroFires;
//定义存储敌机的数组
privateFlight[]flights;
//初始化敌机为10架
privateintnum=10;
//创建一个生成随机数的Random对象
privateRandomran=newRandom();
//定义一个统计积分的属性
privateintscore;
//定义一个存放爆炸图片的集合
privateListbomPics;
//创建面板的构造器,对属性进初始化
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;iFlightenemyFlight=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;iFireheroFire=heroFires.get(i);
heroFire.drawFire(g);
}
//绘制英雄飞机
heroFlight.drawFlight(g);
//绘制敌机
for(inti=0;iflights[i].drawFlight(g);
}
//绘制爆炸图片
for(inti=0;iBomPicbomPic=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;iflights[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=