java飞机大战项目总结.docx
《java飞机大战项目总结.docx》由会员分享,可在线阅读,更多相关《java飞机大战项目总结.docx(9页珍藏版)》请在冰豆网上搜索。
java飞机大战项目总结
java飞机大战项目总结
:
大战飞机项目java达内飞机大战项目总结java飞机大战项目描述java飞机大战答辩ppt
篇一:
飞机大战JAVA程序设计报告
中国地质大学长城学院
Java程序设计
题目基于Java的打飞机游戏设计与实现
系别信息工程系专业计算机科学与技术学生姓名马辉学号*********指导教师田玉龙
2015年6月18日
基于Java的打飞机游戏设计与实现
1、软件运行所需要的软硬件环境
本系统是以Windows系统为操作平台,用Java编程语言来实现本系统所需功能的。
本机器的配置如下:
处理器:
AMDA4或英特尔同级别处理器主频:
1.2Hz以上内存:
1G以上硬盘:
HHD50G或更高采用的主要技术和软件编程语言:
Java开发环境:
windows7开发软件:
Eclipse3.7
2、软件开发环境配置
JAVA_HOME=F:
\JAVA\jdk
PATH=%JAVA_HOME%\bin;%JAVA_HOME%\lib;%JAVA_HOME%\jre\lib;CLASSPATH=%JAVA_HOME%\lib;%JAVA_HOME%\jre\lib;
3、软件功能框图
4、软件所实现的截图
5、主要功能部分的源代码
importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.awt.event.KeyAdapter;importjava.awt.event.KeyEvent;importjava.util.Random;importjava.util.Vector;
importjavax.swing.JOptionPane;importjavax.swing.Timer;
publicclassControllerextendsKeyAdapter{
publicstaticVectorBangbangs=newVectorBang();publicstaticVectorEBulletebullets=newVectorEBullet();publicstaticVectorPBulletpbullets=newVectorPBullet();publicstaticVectorEPlaneeplanes=newVectorEPlane();publicstaticPPlanepplane=newPPlane();privateGamePanelgamePanel;
privateRandomrandom=newRandom();publicstaticintbaoZhaNum;
publicController(VectorBangbang,VectorEBulletebullet,VectorPBulletpbullet,
VectorEPlaneeplane,PPlanepplane,GamePanelgamePanel){
super();
this.bangs=bang;this.ebullets=ebullet;this.pbullets=pbullet;this.eplanes=eplane;this.pplane=pplane;this.gamePanel=gamePanel;
//使用定时器每隔一秒为每一个敌机产生一个子弹Timertimer=newTimer(1000,newActionListener(){
@Override
publicvoidactionPerformed(ActionEvente){
//TODOAuto-generatedmethodstubfor(inti=0;ieplanes.size();i++){}
EBulletebullet=newEBullet(eplanes.elementAt(i).x,
eplanes.elementAt(i).y,8,2);
ebullets.add(ebullet);
}
});
}
timer.start();//声明定时器之后就开启定时器
@Override
publicvoidkeyPressed(KeyEvente){}@Override
publicvoidkeyReleased(KeyEvente){
//TODOAuto-generatedmethodstubswitch(e.getKeyCode()){caseKeyEvent.VK_UP:
PPlane.UP=false;break;
PPlane.DOWN=false;break;
PPlane.LEFT=false;break;
//TODOAuto-generatedmethodstubswitch(e.getKeyCode()){}
caseKeyEvent.VK_UP:
PPlane.UP=true;break;
PPlane.DOWN=true;break;
PPlane.LEFT=true;break;
PPlane.RIGHT=true;break;
PPlane.isFired=true;break;
caseKeyEvent.VK_DOWN:
caseKeyEvent.VK_LEFT:
caseKeyEvent.VK_RIGHT:
caseKeyEvent.VK_X:
caseKeyEvent.VK_DOWN:
caseKeyEvent.VK_LEFT:
篇二:
飞机大战设计报告+开发计划
项目设计报告
项目名称:
进击的飞机
一、游戏整体概括......................................................................................................3
1.1游戏概括........................................................................................................31.2开发环境........................................................................................................3二、系统需求分析......................................................................................................3
2.1用户功能需求分析....................................................................................32.2系统性能要求............................................................................................32.3业务流程分析............................................................................................4三、系统总体设计......................................................................................................4
3.1系统功能模块分析......................................................................................43.2系统类关系图..............................................................................................43.3系统总体设计..............................................................................................5四、系统详细设计......................................................................................................7
4.1开发工具简介............................................................................................74.2游戏界面设计............................................................................................8
4.2.1游戏开始界面ReadyView...........................................................84.2.2游戏主界面MainView.................................................................9
4.2.2.1鼠标控制玩家飞机移动........................................................94.2.2.2碰撞逻辑..............................................................................104.2.2.3游戏暂停..............................................................................104.2.3帮助界面HelpView...................................................................114.2.4游戏失败界面EndView.............................................................11
五、游戏开发计划....................................................................................................12
5.1游戏开发计划表......................................................................................125.2游戏开发计划具体分工..........................................................................14
一、游戏整体概括
1.1游戏概括
本项目是一个基于android平台的、集休闲娱乐、互动交友、丰富生活等诸多元素与一身的手机竞技类游戏。
旨在通过此应用的设计与推广,为社会大众的生活增添乐趣与新意。
本项目产品名称为“进击的飞机”,功能丰富完善,界面简洁流畅,游戏方式简单,玩家易于上手。
1.2开发环境
开发环境:
Windows7&Windows8.1开发工具:
Eclipse开发语言:
Java开发平台:
AndroidADT
二、系统需求分析
2.1用户功能需求分析
由于本游戏交互性好,简单易操作,对用户并没有特殊的要求。
一般用户经过几分钟练习就可以掌握游戏规则。
2.2系统性能要求
①实时性:
本应用为手机游戏因此对于用户的操作必须做出立即响应,否则本游戏即为失败。
②易操作性:
单机手机游戏的最大特点即为易操作性,用户在不看说明的情况下也能够玩,并且在玩过几遍之后即熟悉本游戏的规则。
这是本应用对于操作性的要求。
2.3业务流程分析
三、系统总体设计
3.1系统功能模块分析
当前应用使用的SurfaceView来绘制的页面,因此相对来说大部分逻辑都是由View类来做处理的。
本系统的功能模块也根据View的不同来划分成3个功能模块。
3.2系统类关系图
系统实体类、边界类、控制类之间的关系如图3-1所示:
图3-1实体类、控制类、边界类之间的关系
各个界面类之间的关系如图3-2所示:
图3-2APP边界类关系
3.3系统总体设计
系统的中只有玩家一种用
户,不必向其他的网站或者是教务系统一样进行身份验证等操作。
玩家点击应用图标直接进入应用的开始界面。
用户的操作总体可以归并成如3-3玩家用例图所显示的内容,子弹的用例图如图3-4所示,飞机的用例图如图3-5所示,游戏总体结构类图如图3-6所示。
篇三:
飞机大战项目总结
飞机大战项目总结
学飞机大战好几天了,今天就总结一下飞机大战所学的知识,所遇到的困难,还有常出现在错误。
一:
资源包的导入,场景的搭建步骤不在阐述在这包的导入和创建新文件夹在回顾一下Scences存放场景视图,Scripts存放脚本,Resources存放资源包,资源包下有Textures存放图片,Materials存放材质,Audios存放声音,Madels存放模型。
二:
脚本的建立
(1)玩家的飞机的前后左右的移动代码如下:
floatx=Input.GetAxis(Horizontal);//左右移动floatz=Input.GetAxis(Vertical);//前后移动transform.Translate(-x,0,-z);
(2)子弹的不停发射我们采用了鼠标事件用if判断代码如下:
if(Input.GetMouseButtonDown(0)||Input.GetKey(KeyCode.Space))
//鼠标左键或空格发射子弹
(3)子弹的个数我们用克隆的方法代码如下:
GameObjectu=GameObject.Instantiate(yushe,transform.position,Quaternion.identity)asGameObject;//Instantiate有三个参数一个是所克隆的对象,第二个是所克隆的位置,第三个是位置。
(4)在克隆出子弹时,子弹是静止不动的,我们在给它加个力,有于我这个脚本是挂在子弹预设体上的代码如下:
u.rigidbody.AddForce(0,0,-8000);//有三个参数,一个是X轴的力,一个是Y轴的力,一个是Z轴的力。
(5)敌机的飞行就按傻瓜的来所代码如下:
transform.Translate(newVector3(0,0,-1));//有三个参数,一个是X轴的飞行,一个是Y轴的飞行,一个是Z轴的飞行。
(6)敌机的子弹发射也是傻瓜类型代码如下:
floatrocketTime=1;//给敌机所发射的时间
rocketTime-=Time.deltaTime;//时间递减if(rocketTime=0){//如果时间小于零为真rocketTime=1;GameObject
aa=GameObject.Instantiate(EnPeoRo2,transform.position,Quaternion.identity)asGameObject;
aa.rigidbody.AddForce(0,0,8000);//给敌机子弹加力
(7)子弹的销毁,脚本添加给玩家子弹的预设体上代码如下:
Destroy(this.gameObject,2);//俩个参数一个是销毁目标,而是几秒后所消失
(8)敌机子弹的消失,脚本添加给敌机脚本代码如下:
Destroy(this.gameObject,2);
(9)玩家子弹打到敌机时,敌机消失代码如下
voidOnTriggerEnter(Collideraa){//添加触发器
if(aa.tag==PlayRocket){//如果玩家的子弹碰到标签为PlayRocket则为真//Debug.Log(collision.gameObject.name);Destroy(this.gameObject);//销毁目标
}}Destroy(this.gameObject);销毁(10)当敌机子弹打到玩家飞机时则玩家飞机生命减少,若干次销毁代码如下;voidOnTriggerEnter(Collideraa){}if(aa.tag==EnenmyRocket){//打到一次}i--;//生命建少一次if(i==0){//当减为零时为真Destroy(this.gameObject);}//销毁目标
具体代码如下:
玩家飞机代码publicclassPlayerPlan:
MonoBehaviour{
publicGameObjectyushe;inti=2;//UsethisforinitializationvoidStart(){}//UpdateiscalledonceperframevoidUpdate(){floatx=Input.GetAxis(Horizontal);floatz=Input.GetAxis(Vertical);transform.Translate(-x,0,-z);if(Input.GetMouseButtonDown(0)||Input.GetKey(KeyCode.Space)){GameObject
u=GameObject.Instantiate(yushe,transform.position,Quaternion.identity)asGameObject;
}}voidOnTriggerEnter(Collideraa){}if(aa.tag==EnenmyRocket){}i--;if(i==0){Destroy(this.gameObject);}}u.rigidbody.AddForce(0,0,-8000);
玩家子弹代码如下:
usingUnityEngine;
usingSystem.Collections;
publicclassPlayRicket:
MonoBehaviour{
}
敌机子弹代码:
usingUnityEngine;
usingSystem.Collections;
publicclassEnProRock2:
MonoBehaviour{
publicGameObjectEnPeoRo2;floatrocketTime=1;//UsethisforinitializationvoidStart(){}//UpdateiscalledonceperframevoidUpdate(){}//this.gameObject.rigidbody.AddForce(Vector3.back);Destroy(this.gameObject,2);//UsethisforinitializationvoidStart(){}//UpdateiscalledonceperframevoidUpdate(){rocketTime-=Time.deltaTime;if(rocketTime=0){rocketTime=1;GameObject
aa=GameObject.Instantiate(EnPeoRo2,transform.position,Quaternion.identity)asGameObject;
}}aa.rigidbody.AddForce(0,0,8000);
}
敌机代码如下:
usingUnityEngine;
usingSystem.Collections;
publicclassEnenmyPeople2:
MonoBehaviour{
}
if(aa.tag==PlayRocket){}}//UsethisforinitializationvoidStart(){}//UpdateiscalledonceperframevoidUpdate(){}voidOnTriggerEnter(Collideraa){transform.Translate(newVector3(0,0,-1));//Debug.Log(collision.gameObject.name);Destroy(this.gameObject);}elseif(transform.transform.position.z=227){Destroy(this.gameObject);//想了解更多到狗刨学习网