电脑游戏飞机大战的开发与设计计算机专业毕业论文

毕业设计(论文)题目:飞机大战游戏的设计与开发I毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。

尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。

对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。

作者签名:日期:指导教师签名:日期:使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。

作者签名:日期:学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。

除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。

对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。

本人完全意识到本声明的法律后果由本人承担。

作者签名:日期:年月日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。

本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。

涉密论文按学校规定处理。

作者签名:日期:年月日导师签名:日期:年月日注意事项1.设计(论文)的内容包括:1)封面(按教务处制定的标准封面格式制作)2)原创性声明3)中文摘要(300字左右)、关键词4)外文摘要、关键词5)目次页(附件不统一编入)6)论文主体部分:引言(或绪论)、正文、结论7)参考文献8)致谢9)附录(对论文支持必要时)2.论文字数要求:理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。

3.附件包括:任务书、开题报告、外文译文、译文原文(复印件)。

4.文字、图表要求:1)文字通顺,语言流畅,书写字迹工整,打印字体及大小符合要求,无错别字,不准请他人代写2)工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术标准规范。

图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画3)毕业论文须用A4单面打印,论文50页以上的双面打印4)图表应绘制于无格子的页面上5)软件工程类课题应有程序清单,并提供电子文档5.装订顺序1)设计(论文)2)附件:按照任务书、开题报告、外文译文、译文原文(复印件)次序装订3)其它摘要飞机游戏是一款风靡全球的电视机游戏和掌上游戏机产品,曾几何时,它创造了一个无法企及的游戏巅峰,也曾影响了一代产业链。

虽然它辉煌的业绩在历史的涡轮中渐渐远去,但这款游戏每每提及,总会令人爱不释手,魂牵梦绕。

这款游戏的名字叫做飞机大战,它是运行于Windows操作系统下的一款2D 游戏,以C/C++为开发语言,构建于Microsoft Foundation Class Library(MFC)框架体系中,其中调用了部分的Win32API函数接口,在Visual Studio2010环境下开发的一款多媒体游戏。

随着硬件性能的不断提高,游戏的日益普及,使开发者不再需要过多的关注不同的硬件设备。

本论文着眼于双缓冲绘图的运用,开发出仅用于理论研究的二维平面射击类游戏。

本文首先分析了电脑游戏的发展历史,然后分析了制作游戏的基本流程和游戏本身所要包含的几种元素以及游戏应具备的游戏层次。

根据2D游戏的特点和游戏的角色,以及给用户呈现的游戏界面的特效,对2D图形技术,Windows 图形界面编程技术GDI,DirectDraw的显卡接口和DirectSound声卡接口以及MVC 设计模式下的MFC框架等技术进行了比较仔细的研究。

通过自定义一个游戏类CGame,封装了游戏元素的基本属性和行为,这样便于在用到游戏的行为操作是,只要轻松的产生CGame对象便可直接调用其方法,也有利于升级为双人游戏,乃至网络版时,只需要在该类中添加相应的行为便可。

当我们向用户呈现游戏运行的界面时,通过Timer时钟控件,映射到相应的处理函数,使得游戏界面大约每2秒钟刷新一下界面,这样才能让一张位图背景图片具有动态效果。

当使用DirectSound声卡接口时,我方和敌方相互射击所发出的声音,都是在时钟映射函数调用时处理的。

【关键词:】C/C++; VS 2010/MFC; 飞机大战游戏ABSTRACTAirplane game is a popular global TV game and handheld game products,once upon a time,it creates a game out of reach peak,have influenced a generation of industrial chain. Although it brilliant performance in the history of turbine faded away,but the game is often mentioned always miss.The game's name is ,it is running on Windows operating systems,a 2 d game,with C/C + + as development language,building on the Microsoft Foundation Class Library MFC framework,which invokes the part Win32API function interface,in the Visual Studio 2010 environment using DirectX software development kit SDK to develop a multimedia game.With the constant improvement of the hardware performance,the rising popularity of the game,DirectX development kit update and perfect,make developers don't need too much attention to different hardware devices. The use of this thesis focus on DirectSound,DirectDraw,developed only due to the theoretical research of two-dimensional plane shooting game.This article first analyzes the development history of computer games,and then analyze the basic process of making game and the game itself need to include what kind of elements and the game should have level. According to the characteristics of the 2 d game and game role,and to the user interface rendering effects,the technology of 2 d graphics,the graphics interface and DirectSound DirectDraw sound card interface and MFC framework of MVC design mode to compare the careful research. Through a custom game CGame class,encapsulates the basic attribute of game elements and behavior,so easy to use in the game operation,as long as easy to produce the CGame object can be directly to call its methods,but also to when upgraded to a double game,online version,just need to add the proper behavior in the class. When we present game operation interface to the user,by the Timer clock control that is mapped to the corresponding processing function,makes the game about every 2 seconds refresh interface,in this way can we make a bitmap background picture with dynamic effect. When using DirectSound sound card interface,we and the noise made by enemy fire,are on the clock whenprocessing the mapping function call.KEY WORDS: C/C + +; VS 2010/MFC; plane war game目录第1章绪论 (1)1.1 系统研究的背景及意义 (1)1.2 国内外的发展现状 (1)1.4 本文的组织结构 (2)1.5 本章小结 (2)第2章游戏的相关知识和系统开发平台的阐述 (3)2.1游戏基本流程概述 (3)2.2游戏系统元素阐述 (4)2.3开发环境和相关技术的概述 (5)2.3.1 开发环境 (5)2.3.2 相关技术 (5)2.4本章小结 (10)第3章游戏分析 (11)3.1 用户功能需求分析 (11)3.2 系统性能要求 (12)3.3可行性分析 (12)3.4本章小结 (13)第4章游戏设计 (14)4.1游戏整体设计 (14)4.1.1 整体结构 (14)4.1.2 游戏对战规则 (14)4.2游戏界面设计 (15)4.2.1游戏起始界面设计 (15)4.2.2游戏运行界面设计 (17)4.2.3游戏结束界面设计 (17)4.3游戏功能设计 (18)4.3.1双缓冲绘图 (19)4.3.2功能实现 (19)4.4本章小结 (26)第5章系统测试 (27)5.1软件测试基础理论 (27)5.1.1 软件测试定义 (27)5.1.2 软件测试基本概念 (27)5.2软件测试目的 (27)5.3软件测试方法分类 (28)5.3.1 静态测试与动态测试 (28)5.3.2 黑盒白盒与白盒测试 (28)5.3.3 单元测试、集成测试、系统测试、验证测试和确认测试 (29)5.4论坛测试 (29)5.4.1 测试用例设计要求 (29)5.5测试用例 (30)5.6测试结果 (30)5.6本章小结 (31)第6章工作总结 (32)致谢 (33)参考文献 (34)附录1 (1)第1章绪论第1章绪论1.1 系统研究的背景及意义当今社会是一个信息社会,一个知识经济的年代。

合集下载

飞机大战课设报告

飞机大战课设报告

飞机大战课设报告飞机大战是一款经典的游戏,也是计算机科学中常见的课设项目之一。

在这个项目中,我们需要设计一个能够实现基本飞机大战功能的程序,包括游戏场景,敌人飞机,玩家飞机以及子弹等元素。

在本文中,我们将介绍飞机大战的实现原理以及我们的设计思路。

一、游戏场景的实现游戏场景是飞机大战中最基本的元素之一。

我们需要在程序中创建一个游戏窗口,用于展示游戏场景。

在窗口中,我们需要绘制背景图像,以及玩家飞机和敌人飞机等元素。

为了实现更加真实的游戏体验,我们还可以添加背景音乐和音效。

二、敌人飞机的实现在飞机大战中,敌人飞机是玩家需要消灭的目标。

我们需要在程序中创建敌人飞机,并控制其在游戏场景中的运动轨迹。

为了增加游戏难度,我们可以让敌人飞机在不同的高度和速度上运动,同时还可以添加不同种类的敌人飞机,例如飞行速度更快或者攻击力更强的飞机。

三、玩家飞机的实现玩家飞机是游戏中最重要的元素之一。

我们需要在程序中创建玩家飞机,并控制其在游戏场景中的运动轨迹。

为了让玩家更好地操作飞机,我们还可以添加键盘控制功能,例如向上或向下移动、向左或向右转向等。

四、子弹的实现子弹是玩家攻击敌人飞机的主要武器。

我们需要在程序中创建子弹,并控制其在游戏场景中的运动轨迹。

为了增加游戏体验,我们还可以添加不同种类的子弹,例如攻击力更强或者射程更远的子弹。

五、游戏逻辑的实现游戏逻辑是飞机大战中最重要的部分之一。

我们需要实现游戏的开始和结束逻辑,例如游戏开始前的介绍页面和游戏结束后的排名页面。

同时,在游戏过程中,我们还需要实现敌人飞机的生成和移动、玩家飞机的控制和移动、子弹的生成和移动以及碰撞检测等功能。

六、总结在本文中,我们介绍了飞机大战的实现原理以及我们的设计思路。

通过以上的步骤,我们可以实现一个基本的飞机大战游戏,并在程序中添加更多的功能和元素,以实现更加完整的游戏体验。

飞机大战不仅仅是一款游戏,更是一个综合性的课设项目,可以让我们更好地掌握计算机科学中的相关知识。

飞机大战设计报告+开发计划讲解

飞机大战设计报告+开发计划讲解

项目设计报告项目名称:进击的飞机目录一、游戏整体概括 (3)1.1 游戏概括 (3)1.2 开发环境 (3)二、系统需求分析 (4)2.1用户功能需求分析 (4)2.2 系统性能要求 (4)2.3业务流程分析 (4)三、系统总体设计 (5)3.1 系统功能模块分析 (5)3.2 系统类关系图 (5)3.3 系统总体设计 (6)四、系统详细设计 (8)4.1 开发工具简介 (8)4.2 游戏界面设计 (8)4.2.1游戏开始界面ReadyView (8)4.2.2游戏主界面MainView (9)4.2.2.1 鼠标控制玩家飞机移动 (10)4.2.2.2 碰撞逻辑 (10)4.2.2.3 游戏暂停 (11)4.2.3帮助界面HelpView (11)4.2.4游戏失败界面EndView (12)五、游戏开发计划 (13)5.1游戏开发计划表 (13)5.2 游戏开发计划具体分工 (15)一、游戏整体概括1.1游戏概括本项目是一个基于android平台的、集休闲娱乐、互动交友、丰富生活等诸多元素与一身的手机竞技类游戏。

旨在通过此应用的设计与推广,为社会大众的生活增添乐趣与新意。

本项目产品名称为“进击的飞机”,功能丰富完善,界面简洁流畅,游戏方式简单,玩家易于上手。

1.2开发环境开发环境:Windows 7 & Windows 8.1开发工具:Eclipse开发语言:Java开发平台:Android ADT二、系统需求分析2.1用户功能需求分析由于本游戏交互性好,简单易操作,对用户并没有特殊的要求。

一般用户经过几分钟练习就可以掌握游戏规则。

2.2 系统性能要求①实时性:本应用为手机游戏因此对于用户的操作必须做出立即响应,否则本游戏即为失败。

②易操作性:单机手机游戏的最大特点即为易操作性,用户在不看说明的情况下也能够玩,并且在玩过几遍之后即熟悉本游戏的规则。

这是本应用对于操作性的要求。

2.3业务流程分析三、系统总体设计3.1 系统功能模块分析当前应用使用的SurfaceView来绘制的页面,因此相对来说大部分逻辑都是由View类来做处理的。

基于Android的飞机大战游戏设计与开发本科毕业设计

基于Android的飞机大战游戏设计与开发本科毕业设计
Keywords:Android Programing;MobilePhone Games; Java Programing;SQLite
第
1.1功能已不仅仅是简单的接打电话、收发短信了。更多的手机用户希望在工作、学习之余通过方便灵巧可随身携带的仪器休闲娱乐。因此,为了迎合众多用户的需求并适应现在手机的规模,我们开发出一套适合各阶层人士的具有很强的娱乐性和交互性的飞机小游戏。
本应用为Android飞机大战游戏,主要有6个操作界面分别为开始界面,游戏界面,设置界面,得分界面,Win界面,Lose界面。玩家可以选择自己进入设置界面对游戏进行设置,或进入的分界面查看自己本次操作是否在前六名等操作。作为游戏背景音乐的存在是不可或缺的,本应用在不同的操作界面演奏不同的背景音乐,玩家还可以在设置界面设置背景音乐的大小。由于Android控件Activity的生命周期的特点,本应用会在被点击“EXIT”按钮的Activity中发送一个EXIT的广播,所有的本应用的Activity收到广播后会自动结束,使得本应用能够完全的退出系统。本应用采用Android的SurfaceView绘制游戏界面,游戏的主界面美观,赏心悦目,以提高玩家对游戏的兴趣。游戏的控制模块应该做到易懂、易操作,以给玩家一个很好的游戏环境。
关键词:Android开发;手机游戏;Java;SQLite
Abstract
Android has been known for people,after 2011 years of baptism,Android smartphonedeveloping fast.Android occupies a large share in the market.Android game application is successful,it makea person seethatmobile games on the Android platform of the huge development space. Based on this,weusing Eclipse and Android ADT as integrated development platform, to develop the Android gameapplication.

飞机大战游戏开发开题报告

飞机大战游戏开发开题报告

飞机大战游戏开发开题报告打飞机小游戏开题报告毕业设计开题报告篇二:基于android的飞机游戏开发开题报告开题报告(1)研究的目的和意义Android操作系统最初是由 Andy Rubin制作,最初主要支持手机,在2005年被搜索巨头Google收购注资,并组建开放手机联盟开发改良随后,逐渐扩展到平板电脑及其他领域上,2008年全球第一步安卓智能手机问世,标志着安卓的重生。

而在2011年11月份的调查,android智能机一跃超过苹果,以全球市场占有率76%,中国90%遥遥领先。

在安卓手机中以三星的GALAXY III系列为领头羊,领跑安卓手机最新科技。

当人类步入21世纪,随着科技的日趋发展,智能手机,平板电脑等高端电子产品进入了我们的日常生活,随着3G时代已经慢慢的融入了我们的日常生活,随着社会的进步和科技的发展手机已经从单纯的通讯工具转变为集娱乐,学习,通讯为一体的高端电子产品,随着诺基亚塞班系统的没落,安卓系统迎来了春天。

据市场调查,智能手机市场已经形成了二足鼎力的态势,安卓和苹果的IOS作为领军者遥遥领先于windows phone系统,而在2011年11月份的调查,android智能机一跃超过苹果,以市场占有率76%遥遥领先。

同时各种android应用程序已经有了比较明朗的发展前景,尤其以手机游戏这个亮点受到广泛的关注和喜爱,正是由于android拥有广大的用户群,android手机游戏拥有巨大的潜力,它也主宰者手机游戏的未来,此次毕业设计顺应时代发展潮流,依托现在硬件上的优势,以android为平台,旨在玩家打造一款优秀的飞行类小游戏,使玩家身临其景,爱不释手。

在安卓游戏的市场上,使得android手机游戏种类更加丰富多彩,为安卓手机游戏的发展做出贡献。

(2)国内外同类研究的概况手机游戏种类和资源日益丰富,游戏界面越来越华丽,游戏规则日益复杂,已经具备了很强的娱乐性和交互性的复杂形态。

飞机大战课设报告

飞机大战课设报告

飞机大战课设报告【摘要】《飞机大战》是一款常见的休闲游戏,主要任务是控制一个飞机在游戏中尽可能地打败敌人,并获取高分。

本文主要介绍了该游戏的开发过程和相关技术,包括游戏设计、游戏机制、游戏界面、程序实现和测试等方面。

通过本次课设,我们不仅熟练掌握了Unity3D游戏引擎的基本操作和编程技巧,还进一步加强了团队合作和项目管理能力,提高了实际项目开发的技能和经验。

【关键词】飞机大战;Unity3D;游戏设计;程序实现;课设报告一、介绍《飞机大战》是一款经典的休闲游戏,在全球范围内拥有广泛的玩家群体。

这款游戏最初在1984年诞生,经过多年的发展和改进,已经成为一款集合了多种游戏机制和特色的休闲游戏。

本次课设的目的是通过设计和开发一款类似的游戏,加深学生对于Unity3D游戏引擎的认识和理解,提高实战开发的技能和能力。

二、游戏设计1. 游戏机制鉴于《飞机大战》是一款不断升级和挑战的游戏,因此我们在游戏设计方面,也采用了类似的机制。

游戏分为多个关卡,每个关卡包含不同的敌人组合和挑战任务,玩家需要不断打败敌人,通过关卡并获取相应的奖励。

同时,游戏中还设有成就系统和排行榜,并且玩家可以通过购买技能提升自己的实力。

2. 游戏界面游戏界面主要包括菜单、游戏场景、道具商城和玩家基本信息等几个部分。

游戏菜单和道具商城可以让玩家选择不同的关卡或道具,并进行购买和升级。

游戏场景中,玩家可以控制自己的飞机行驶,并且进行射击操作。

玩家基本信息则记录了玩家的身份、成就和得分情况等。

三、游戏机制1. 控制方式玩家可以通过键盘或者移动设备进行控制,其中,键盘控制方式包括方向键和射击键,玩家可以通过方向键控制飞机左右移动,并且通过射击键进行攻击。

移动设备控制方式则采用手指滑动和点击控制的方式。

2. 飞机移动飞机移动可以用刚体组件或者Transform组件实现。

我们这里采用的是Transform组件,这样可以减小游戏的物理计算量。

另外,我们还使用了单摇杆控制器插件,这样可以简化控制逻辑和提高游戏体验。

飞机大战程序设计报告

飞机大战程序设计报告

程序设计综合实践实习报告一、实习题目:飞机大战游戏二、实习时间:2014.9.20-2014.9.30实习地点:J13-132、232三、实习任务:通过项目实战,掌握C++面向对象编程的基础技术和Windows 应用程序的编程方法,能够运用MFC技术及其开发环境进行小项目的开发。

四、小组分工说明:五、实习成绩六、指导教师对实习的评语:指导教师(签章):年月日飞机大战游戏1.实习目的1.1使学生全面了解软件项目实施的过程,理解软件企业对于程序员的基本素质和技术能力要求。

1.2使学生掌握C++及Window程序设计的基本技术,能够运用MFC技术及其开发环境进行小型项目的开发。

1.3重点培养学生的独立创新精神和查阅资料能力,提高其口头和书面的沟通能力。

1.4使学生掌握快速学习新知识、新技术方法,培养良好的分析问题和解决问题的能力1.5重点提高学生的编程能力,使学生建立正确的编程理念,养成规范的编程习惯。

2. 实习计划1、9.20—9.21先建立CGameObject 类,利用继承机制,根据此类进行依次的派生。

2、9.22—9.25再建立派生类:Bomb,Ball,Enemy,MyPlane,Explosion等,并实现各自功能。

3、9.26—9.29在xxView.cpp中的OnTimer中实现背景的设置,对敌机,导弹,敌机子弹,爆炸效果的绘制,以及敌机子弹和战机,导弹和敌机的碰撞检验,并添加爆炸效果4、9.29—9.30最后释放pDC以及定时器3.实习过程3.1 技术准备透明贴图技术绘制透明位图的关键就是创建一个“掩码”位图(mask bitmap),这个“掩码”位图是一个单色位图,它是位图中图像的一个单色剪影。

在详细介绍实现过程之前先介绍下所使用的画图函数以及函数参数所代表的功能;整个绘制过程需要使用到BitBlt()函数。

整个功能的实现过程如下:(1) 创建一张大小与需要绘制图像相同的位图作为“掩码”位图;(2) 将新创建的“掩码”位图存储至掩码位图的设备描述表中;(3) 把位图设备描述表的背景设置成“透明色”,不需要显示的颜色;(4) 复制粘贴位图到“掩码”位图的设备描述表中,这个时候“掩码”位图设备描述表中存放的位图与位图设备描述表中的位图一样;(5) 把需要透明绘制的位图与对话框绘图相应区域的背景进行逻辑异或操作绘制到对话框上;(6) 把“掩码”位图与这个时候对话框相应区域的背景进行逻辑与的操作;(7) 重复步骤5的操作,把需要透明绘制的位图与对话框绘图相应区域的背景进行逻辑异或操作绘制到对话框上;(8) 最后把系统的画笔还给系统,删除使用过的GDIObject,释放非空的指针,最后把新建的设备描述表也删除。

飞机大战JAVA程序设计报告

飞机⼤战JAVA程序设计报告中国地质⼤学长城学院Java 程序设计题⽬基于Java的打飞机游戏设计与实现系别信息⼯程系专业计算机科学与技术学⽣姓名马辉学号041120101指导教师⽥⽟龙2015 年 6 ⽉18 ⽇基于Java的打飞机游戏设计与实现1、软件运⾏所需要的软硬件环境本系统是以Windows系统为操作平台,⽤Java编程语⾔来实现本系统所需功能的。

本机器的配置如下:处理器:AMD A4 或英特尔同级别处理器主频:1.2Hz以上内存:1G以上硬盘:HHD 50G或更⾼采⽤的主要技术和软件编程语⾔:Java开发环境:windows7开发软件:Eclipse 3.72、软件开发环境配置JA V A_HOME = F:\JA V A\jdkPATH = % JA V A_HOME%\bin;%JA V A_HOME%\lib;%JA V A_HOME%\jre\lib; CLASSPATH = %JA V A_HOME%\lib;%JA V A_HOME%\jre\lib;3、软件功能框图4、软件所实现的截图5、主要功能部分的源代码import java.awt.event.ActionEvent;import 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 Vector bangs = new Vector();public static Vector ebullets = new Vector();public static Vector pbullets = new Vector();public static Vector eplanes = new Vector();public static PPlane pplane = new PPlane();private GamePanel gamePanel;private Random random = new Random();public static int baoZhaNum;public Controller(Vector bang,Vector ebullet,Vector pbullet, Vector eplane,PPlane pplane,GamePanel gamePanel) { super(); this.bangs = bang;this.ebullets = ebullet;this.pbullets = pbullet;this.eplanes = eplane;this.pplane = pplane;this.gamePanel = gamePanel;//使⽤定时器每隔⼀秒为每⼀个敌机产⽣⼀个⼦弹Timer timer = new Timer(1000, new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubfor(int i=0;i < eplanes.size();i++){EBullet ebullet = new EBullet(eplanes.elementAt(i).x, eplanes.elementAt(i).y,8,2);ebullets.add(ebullet);}}});timer.start(); //声明定时器之后就开启定时器}@Overridepublic void keyPressed(KeyEvent e) { // TODO Auto-generated method stub switch (e.getKeyCode()){case KeyEvent.VK_UP:PPlane.UP = true;break;case KeyEvent.VK_DOWN: PPlane.DOWN = true;break;case KeyEvent.VK_LEFT: PPlane.LEFT = true;break;case KeyEvent.VK_RIGHT: PPlane.RIGHT = true;break;case KeyEvent.VK_X:PPlane.isFired = true;break;}}@Overridepublic void keyReleased(KeyEvent e) { // TODO Auto-generated method stub switch (e.getKeyCode()){case KeyEvent.VK_UP:PPlane.UP = false;break;case KeyEvent.VK_DOWN: PPlane.DOWN = false;break;case KeyEvent.VK_LEFT: PPlane.LEFT = false;break;case KeyEvent.VK_RIGHT:PPlane.RIGHT = false;break;case KeyEvent.VK_X:PPlane.isFired = false;}}public void StartRun(){new Thread(){public void run(){int count = 0; //通过count控制⼦弹避免连续按发送键时⼦弹连成线while(true){//本机移动pplane.pplaneMove();//添加本机⼦弹if(PPlane.isFired && count%5==0){PBullet pbullet1 = new PBullet(pplane.x+65, pplane.y+50, 8, 15); pbullets.add(pbullet1);PBullet pbullet2 = new PBullet(pplane.x+50, pplane.y+50, 8, 15); pbullets.add(pbullet2);PBullet pbullet3 = new PBullet(pplane.x+35, pplane.y+50, 8, 15); pbullets.add(pbullet3);PBullet pbullet4 = new PBullet(pplane.x+20, pplane.y+50, 8, 15); pbullets.add(pbullet4);}count++;//让本机⼦弹移动并判断是否打中敌机for(int i=0;i < pbullets.size();i++){pbullets.elementAt(i).bulletMove();int index = pbullets.elementAt(i).isPbulletHitEplane();if(index != -1) //不等于-1 证明打中了并产⽣爆炸{Bang bang = new Bang(pbullets.elementAt(i).x,pbullets.elementAt(i).y,30,30);bangs.add(bang);baoZhaNum++;eplanes.remove(index);}}//判断本机⼦弹出界就移除for(int i=0;i < pbullets.size();i++){if(pbullets.elementAt(i).y <= 0){pbullets.remove(i);//System.out.println("⼦弹移除");}}//添加敌机if(eplanes.size() < Global.ENEMY_NUMBER){int x = random.nextInt(Global.FRAME_WIDTH);int y = -30;EPlane eplane = new EPlane(x, y, 30, 30);eplanes.add(eplane);}//让敌机移动并且判断出界for(int i=0;i < eplanes.size();i++){eplanes.elementAt(i).eplaneMove();if(eplanes.elementAt(i).y >= Global.FRAME_HEIGHT){ eplanes.remove(i);}}//让敌机⼦弹移动并将超过边界的敌机⼦弹移除for(int i=0;i < ebullets.size();i++){ ebullets.elementAt(i).bulletMove();if(ebullets.elementAt(i).isEBulletHitPPlane()){ebullets.elementAt(i).isUsed = true;PPlane.life -= 2;}if(ebullets.elementAt(i).y >= Global.FRAME_HEIGHT){ ebullets.remove(i);}}for(int i=0;i < bangs.size();i++){if(bangs.elementAt(i).isBang == true){bangs.remove(i);}}try {sleep(30);} catch (InterruptedException e) {e.printStackTrace();}JudgeLife();gamePanel.display(bangs, ebullets, pbullets, eplanes, pplane);}}}.start();}public void JudgeLife(){if(!pplane.isAlive()){int result = JOptionPane.showConfirmDialog(gamePanel,"继续重玩?","提⽰",JOptionPane.YES_OPTION);if(result==0){newGame();}else{System.exit(0);}}}public void newGame(){bangs.clear(); //重玩必须将⼀切对象都清空ebullets.clear();pbullets.clear();eplanes.clear();pplane = new PPlane(250, 400, 100, 100);baoZhaNum = 0;pplane.life = 100; //不重置⽣命值在进⾏JudgeLife判断会⼀直出现是否重玩的对话框PPlane.DOWN = false; //重新开始游戏之后必须重置所有的静态变量否则会保存上⼀次的静态变量值运动和发射⼦弹PPlane.UP = false;PPlane.LEFT = false;PPlane.RIGHT = false;PPlane.isFired = false;}}public class PBullet extends Bullet{private Image img; //保存⼦弹的图⽚private JPanel jpanel;public JPanel getJpanel() {return jpanel;}public void setJpanel(JPanel jpanel) {this.jpanel = jpanel;}public PBullet(int x, int y, int width, int heigth) {super(x, y, width, heigth);img = new ImageIcon("Image/fire.png").getImage();// TODO Auto-generated constructor stub}public void bulletMove() {// TODO Auto-generated method stubthis.y-=20; //⼦弹的速度⼀定要⼤于飞机的速度否则⼦弹会出现在飞机后⾯}public void drawMe(Graphics g) {// TODO Auto-generated method stubg.drawImage(img, x, y, width, heigth, jpanel);}//在本机⼦弹判断是否打中敌机public int isPbulletHitEplane(){for(int j=0;j < Controller.eplanes.size();j++){Rectangle recPbullet = new Rectangle(x,y,width,heigth);Rectangle recEplane = new Rectangle(Controller.eplanes.elementAt(j).x, Controller.eplanes.elementAt(j).y,Controller.eplanes.elementAt(j).w, Controller.eplanes.elementAt(j).h);if(recPbullet.intersects(recEplane)) //判断矩形重叠{return j;}}return -1;}}6、总结JA V A和Eclipse是⼀款⾮常好的开发语⾔和平台,类的建⽴使编程相对明朗,不同的组件很明确的摆在那,对于头脑不灵活的⼈来说真的是⼀款⾮常清晰明了的开发软件,通过这⼀段时间的JA V A程序开发,我感觉到尽管的是不同的语⾔和平台,开发程序⼀样需要动脑和努⼒,每⼀款软件或者游戏都不是⼀朝⼀⼣能制作出的,都需要⼤量的构思和编程,最后还有繁琐的检查⼯作,通过这次接触JA V A我今后会更努⼒的学习它。

飞机大战游戏设计报告

JAVA期中作业飞机大战目录飞机大战游戏设计报告1、游戏名称 (1)2、游戏初步框架: (1)3、游戏规则: (1)4、需求分析 (2)4.1功能需求: (2)4.2数据需求: (3)4.3用户需求: (3)4.4行为需求: (3)5、系统设计 (4)5.1 系统模块划分 (4)5.2 主要功能模块 (5)6、详细设计 (6)6.1 开发工具 (6)6.2 游戏界面设计 (6)飞机大战游戏设计报告1、游戏名称《飞机大战》2、游戏初步框架:游戏元素:游戏背景、不同种类的飞机、敌机游戏成分:碰撞之后的血量计算、分数统计、暂停恢复、数据存储游戏的总体设计:分为三个场景,第一个为游戏的进入场景,第二个为游戏的主界面场景,第三个为游戏结束场景,游戏分别有不同关卡,每一关有自己的剧情设计,玩法各一。

游戏开始场景就是开场背景,资源加载以及初始化处理,比如数据存储等。

游戏主界面场景是游戏核心,主要展示游戏过程,在游戏过程中计算得分,玩家战机血量等。

游戏结束界面是统计当前分数,显示玩家的最高分记录,并给出菜单的进一步设计。

3、游戏规则:(1)玩家战机数量为1。

(2)玩家可自由选择战机。

(3)玩家飞机可通过键盘控制战机上下左右移动。

(4)玩家子弹攻击敌机,敌机血量减少。

(5)敌机有计算机自主控制(6)敌机从界面上端出现,不能反向运动,不能左右移动。

(7)敌机数量随机,由计算机控制。

(8)敌机可发送子弹,若战机被击中,血量减少,血量减少到一定程度,战机坠毁,游戏结束。

(9)子弹具有一定的速度。

(10)玩家可在一段时间内发送导弹清除屏幕中除Boss外的敌机。

4、需求分析4.1功能需求:飞机大战需要实现的主要功能如下:(1)用户进入游戏开始菜单可以选择开始游戏、退出游戏。

(2)战机可根据玩家的操作自由移动,但不可移出窗体外。

(3)玩家飞机以一定速度自下而上飞行,用户可以控制飞机上下左右移动。

(4)玩家飞机可连续发射子弹,子弹位置由战机起始位置决定,用户通过操控飞机位置来扫射飞机。

飞机大战游戏设计报告

飞机大战游戏设计报告一、需求分析飞机大战是一款经典的射击类游戏,玩家通过操作飞机并不断射击敌机,躲避敌机的攻击,获取高分。

游戏的主要目标是击败所有敌机,并活到最后,获得最高分数。

二、游戏流程设计1.开始界面:游戏开始时展示游戏的名称、背景音乐的控制按钮以及开始按钮。

2.游戏界面:游戏开始后,玩家会看到自己的飞机在屏幕底部,并且敌机会从屏幕顶部射击向玩家飞机。

玩家通过触摸或键盘控制自己的飞机移动,左手指向左,右手指向右,同时通过触摸或键盘射击按钮进行攻击。

3.游戏规则:-玩家可以通过左右移动来躲避敌机的攻击,同时用子弹攻击敌机。

-敌机被击中后会掉落道具,玩家可以通过接触道具来增加分数、生命值或者升级武器。

-玩家被敌机击中后,生命值减少,当生命值为0时,游戏结束。

-游戏结束后,会显示本局游戏得分和最高得分,并提供重新开始按钮和返回主菜单按钮。

三、游戏功能设计1.角色设计:-玩家飞机:可以左右移动,并发射子弹攻击敌机,有生命值。

-敌机:从屏幕顶部向下移动,发射子弹攻击玩家飞机,玩家可以通过攻击敌机获得分数。

-道具:掉落敌机后,玩家可以通过接触道具获得特殊能力,如增加分数、生命值或者升级武器。

2.武器设计:-玩家飞机的初始武器是普通子弹,每发射一颗消耗一定的能量。

-玩家可以通过接触道具来升级武器,拥有更强大的攻击能力。

-不同武器有不同的攻击方式和能量消耗。

3.难度设计:-游戏可以设置多个难度级别,随着游戏进行逐渐增加敌机的数量和速度。

-敌机的攻击方式和频率也会逐渐增加。

4.音效设计:-游戏中应该添加背景音乐,使游戏更具氛围。

-玩家飞机发射子弹、敌机爆炸、道具掉落等均应有相应的音效,增加游戏的趣味性和真实感。

四、游戏界面设计1.开始界面:简洁明了,显示游戏名称,背景音乐的控制按钮以及开始按钮。

2.游戏界面:-上方显示玩家得分和生命值。

-屏幕底部显示玩家飞机,并通过左右移动来躲避敌机的攻击。

-敌机从屏幕顶部向下移动,并发射子弹攻击玩家飞机。

基于Python的飞机大战游戏设计

第23卷第1期2019年3月扬州职业大学学报Journal of Yangzhou Polytechnic CollegeVol .23 No . 1Mar . 2019基于P y t h o n 的飞机大战游戏设计瞿苏(江苏旅游职业学院,江苏扬州225000)摘要:基于Python 软件的面向对象编程思想设计飞机大战游戏,玩家操作飞机发射子弹,通过左右移动来躲避子弹;敌机位于屏暮顶部左右勾速移动,并且随机向玩家飞机发射子洋。

实践表明,该游戏操作简单 灵活,具有趣味性。

关键词:Python ;飞机大战游戏;Pygame中图分类号:TP 311.52 文献标识码:A文章编号:1008 -3693(2019)01 -0035 -05Design of Aircraft War Game Based on PythonQu Su(Tourism Voacational College of Jiangsu , Yangzhou 225000, China )Abstract : This paper introduces the design of aircraft war game based on Python object-oriented programming.Operating the aircraft, players can fire bullets, can move left and right to avoid bullets, while the enemy air­craft at the top of the screen moves from left to right at a constant speed and randomly shoots players. Practice shows that the game is simple and flexible with great fun. Key words : Python ; aircraft war game ; Pygame Python 是一种开源的简单易学的髙级语言,应用场景涉及到Web 应用开发、操作系统管理、科学计算、游戏等领域。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档