1、java飞机大战项目总结java飞机大战项目总结 :大战 飞机 项目 java 达内飞机大战项目总结 java飞机大战项目描述 java飞机大战答辩ppt 篇一:飞机大战 JAVA程序设计报告 中国地质大学长城学院 Java 程 序 设 计 题目 基于Java的打飞机游戏设计与实现 系 别 信息工程系 专 业 计算机科学与技术 学生姓名 马辉 学 号* 指导教师 田玉龙 2015 年 6 月 18 日基于Java的打飞机游戏设计与实现 1、软件运行所需要的软硬件环境 本系统是以Windows系统为操作平台,用Java编程语言来实现本系统所需功能的。 本机器的配置如下: 处理器:AMD A4 或
2、英特尔同级别处理器 主频:1.2Hz以上 内存:1G以上 硬盘:HHD 50G或更高 采用的主要技术和软件 编程语言:Java 开发环境:windows7 开发软件:Eclipse 3.7 2、软件开发环境配置 JAVA_HOME = F:JAVAjdk PATH = % JAVA_HOME%bin;%JAVA_HOME%lib;%JAVA_HOME%jrelib; CLASSPATH = %JAVA_HOME%lib;%JAVA_HOME%jrelib; 3、软件功能框图 4、软件所实现的截图 5、主要功能部分的源代码 import java.awt.event.ActionEvent; i
3、mport java.awt.event.ActionListener; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.util.Random; import java.util.Vector; import javax.swing.JOptionPane; import javax.swing.Timer; public class Controller extends KeyAdapter public static VectorBang bangs = new VectorBan
4、g(); public static VectorEBullet ebullets = new VectorEBullet(); public static VectorPBullet pbullets = new VectorPBullet(); public static VectorEPlane eplanes = new VectorEPlane(); public static PPlane pplane = new PPlane(); private GamePanel gamePanel; private Random random = new Random(); public
5、static int baoZhaNum; public Controller(VectorBang bang,VectorEBullet ebullet,VectorPBullet pbullet, VectorEPlane eplane,PPlane pplane,GamePanel gamePanel) super(); this.bangs = bang; this.ebullets = ebullet; this.pbullets = pbullet; this.eplanes = eplane; this.pplane = pplane; this.gamePanel = game
6、Panel; /使用定时器 每隔一秒为每一个敌机 产生一个子弹 Timer timer = new Timer(1000, new ActionListener() Override public void actionPerformed(ActionEvent e) / TODO Auto-generated method stub for(int i=0;i eplanes.size();i+) EBullet ebullet = new EBullet(eplanes.elementAt(i).x, eplanes.elementAt(i).y,8,2); ebullets.add(eb
7、ullet); ); timer.start(); /声明定时器之后 就 开启定时器 Override public void keyPressed(KeyEvent e) Override public void keyReleased(KeyEvent e) / TODO Auto-generated method stub switch (e.getKeyCode() case KeyEvent.VK_UP: PPlane.UP = false; break; PPlane.DOWN = false; break; PPlane.LEFT = false; break; / TODO A
8、uto-generated method stub switch (e.getKeyCode() case KeyEvent.VK_UP: PPlane.UP = true; break; PPlane.DOWN = true; break; PPlane.LEFT = true; break; PPlane.RIGHT = true; break; PPlane.isFired = true; break; case KeyEvent.VK_DOWN: case KeyEvent.VK_LEFT: case KeyEvent.VK_RIGHT: case KeyEvent.VK_X: cas
9、e KeyEvent.VK_DOWN: case KeyEvent.VK_LEFT:篇二:飞机大战设计报告+开发计划 项目设计报告 项目名称:进击的飞机 一、 游戏整体概括. 3 1.1 游戏概括. 3 1.2 开发环境. 3 二、 系统需求分析. 3 2.1用户功能需求分析. 3 2.2系统性能要求. 3 2.3业务流程分析. 4 三、 系统总体设计. 4 3.1 系统功能模块分析. 4 3.2 系统类关系图. 4 3.3 系统总体设计. 5 四、 系统详细设计. 7 4.1开发工具简介. 7 4.2游戏界面设计. 8 4.2.1游戏开始界面 ReadyView . 8 4.2.2游戏主界面
10、 MainView . 9 4.2.2.1 鼠标控制玩家飞机移动. 9 4.2.2.2 碰撞逻辑. 10 4.2.2.3 游戏暂停. 10 4.2.3帮助界面 HelpView . 11 4.2.4游戏失败界面 EndView . 11 五、 游戏开发计划. 12 5.1游戏开发计划表. 12 5.2游戏开发计划具体分工. 14一、游戏整体概括 1.1 游戏概括 本项目是一个基于android平台的、集休闲娱乐、互动交友、丰富生活等诸多元素与一身的手机竞技类游戏。旨在通过此应用的设计与推广,为社会大众的生活增添乐趣与新意。本项目产品名称为“进击的飞机”,功能丰富完善,界面简洁流畅,游戏方式简单
11、,玩家易于上手。 1.2 开发环境 开发环境:Windows 7 & Windows 8.1 开发工具:Eclipse 开发语言:Java 开发平台:Android ADT 二、系统需求分析 2.1用户功能需求分析 由于本游戏交互性好,简单易操作,对用户并没有特殊的要求。一般用户经过几分钟练习就可以掌握游戏规则。 2.2系统性能要求 实时性:本应用为手机游戏因此对于用户的操作必须做出立即响应,否则本游戏即为失败。 易操作性:单机手机游戏的最大特点即为易操作性,用户在不看说明的情况下也能够玩,并且在玩过几遍之后即熟悉本游戏的规则。这是本应用对于操作性的要求。2.3业务流程分析 三、系统总
12、体设计 3.1 系统功能模块分析 当前应用使用的SurfaceView来绘制的页面,因此相对来说大部分逻辑都是由View类来做处理的。本系统的功能模块也根据View的不同来划分成3个功能模块。 3.2 系统类关系图 系统实体类、边界类、控制类之间的关系如图3-1所示:图3-1 实体类、控制类、边界类之间的关系 各个界面类之间的关系如图3-2所示: 图3-2 APP边界类关系 3.3 系统总体设计 系统的中只有玩家一种用户,不必向其他的网站或者是教务系统一样进行身份验证等操作。玩家点击应用图标直接进入应用的开始界面。用户的操作总体可以归并成如3-3玩家用例图所显示的内容,子弹的用例图如图3-4所
13、示,飞机的用例图如图3-5所示,游戏总体结构类图如图3-6所示。篇三:飞机大战项目总结 飞机大战项目总结 学飞机大战好几天了,今天就总结一下飞机大战所学的知识,所遇到的困难,还有常出现在错误。 一:资源包的导入,场景的搭建步骤不在阐述在这包的导入和创建新文件夹在回顾一下Scences存放场景视图,Scripts存放脚本,Resources存放资源包,资源包下有Textures存放图片,Materials存放材质,Audios存放声音,Madels存放模型。 二:脚本的建立 (1)玩家的飞机的前后左右的移动代码如下: float x = Input.GetAxis (Horizontal);/左
14、右移动 float z = Input.GetAxis (Vertical);/前后移动 transform.Translate (-x,0,-z); (2)子弹的不停发射我们采用了鼠标事件用if判断代码如下: if (Input.GetMouseButtonDown(0)|Input .GetKey(KeyCode.Space) /鼠标左键或空格发射子弹 (3)子弹的个数我们用克隆的方法代码如下: GameObject u=GameObject.Instantiate(yushe,transform.position,Quaternion.identity)as GameObject;/In
15、stantiate有三个参数一个是所克隆的对象,第二个是所克隆的位置,第三个是位置。 (4)在克隆出子弹时,子弹是静止不动的,我们在给它加个力,有于我这个脚本是挂在子弹预设体上的代码如下: u.rigidbody.AddForce(0,0,-8000);/有三个参数,一个是X轴的力,一个是Y轴的力,一个是Z轴的力。 (5)敌机的飞行就按傻瓜的来所代码如下: transform.Translate (new Vector3(0,0,-1);/有三个参数,一个是X轴的飞行,一个是Y轴的飞行,一个是Z轴的飞行。 (6)敌机的子弹发射也是傻瓜类型代码如下: float rocketTime=1;/给敌
16、机所发射的时间 rocketTime -= Time.deltaTime;/时间递减 if(rocketTime=0)/如果时间小于零为真 rocketTime=1; GameObject aa=GameObject.Instantiate(EnPeoRo2,transform.position,Quaternion.identity)as GameObject; aa.rigidbody.AddForce(0,0,8000);/给敌机子弹加力 (7)子弹的销毁,脚本添加给玩家子弹的预设体上代码如下: Destroy (this.gameObject,2);/俩个参数一个是销毁目标,而是几秒后
17、所消失 (8)敌机子弹的消失,脚本添加给敌机脚本代码如下: Destroy (this.gameObject,2); (9)玩家子弹打到敌机时,敌机消失代码如下 void OnTriggerEnter(Collider aa)/添加触发器 if (aa.tag=PlayRocket) /如果玩家的子弹碰到标签为PlayRocket则为真/Debug.Log(collision.gameObject.name); Destroy (this.gameObject);/销毁目标 Destroy (this.gameObject); 销毁(10)当敌机子弹打到玩家飞机时则玩家飞机生命减少,若干次销毁
18、代码如下; void OnTriggerEnter(Collider aa) if (aa.tag=EnenmyRocket) /打到一次 i-;/生命建少一次 if(i=0)/当减为零时为真 Destroy (this.gameObject);/销毁目标 具体代码如下: 玩家飞机代码public class PlayerPlan : MonoBehaviour public GameObject yushe; int i=2; / Use this for initialization void Start () / Update is called once per frame void
19、Update () float x = Input.GetAxis (Horizontal); float z = 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)as GameObject; void OnTriggerEnter(Collider
20、 aa) if (aa.tag=EnenmyRocket) i-; if(i=0) Destroy (this.gameObject); u.rigidbody.AddForce(0,0,-8000);玩家子弹代码如下: using UnityEngine; using System.Collections; public class PlayRicket : MonoBehaviour 敌机子弹代码: using UnityEngine; using System.Collections; public class EnProRock2 : MonoBehaviour public Game
21、Object EnPeoRo2; float rocketTime=1; / Use this for initialization void Start () / Update is called once per frame void Update () /this.gameObject.rigidbody.AddForce(Vector3.back); Destroy (this.gameObject,2); / Use this for initialization void Start () / Update is called once per frame void Update
22、() rocketTime -= Time.deltaTime; if(rocketTime=0) rocketTime=1; GameObject aa=GameObject.Instantiate(EnPeoRo2,transform.position,Quaternion.identity)as GameObject; aa.rigidbody.AddForce(0,0,8000); 敌机代码如下: using UnityEngine; using System.Collections; public class EnenmyPeople2 : MonoBehaviour if (aa.
23、tag=PlayRocket) / Use this for initialization void Start () / Update is called once per frame void Update () void OnTriggerEnter(Collider aa) transform.Translate (new Vector3(0,0,-1); /Debug.Log(collision.gameObject.name); Destroy (this.gameObject); else if (transform.transform.position.z=227) Destroy (this.gameObject);/想了解更多到狗刨学习网
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1