飞机大战游戏开发开题报告
飞机大战MFC实验报告
实训报告飞机大战游戏设计与开发目录1. 概述 (4)2. 相关技术 (4)2.1 透明贴图技术 (4)2.2 CObList链表 (4)2.3获取矩形区域函数 (4)2.4弹出对话框函数 (5)2.5字体的个性化输出函数 (5)2.6设置定时器 (5)2.7双缓冲技术 (5)2.8 内存释放技术 (6)2.9对话框中添加动态按钮 (6)2.10检测方向键按下 (6)3. 需求分析(用结构化方法或面向对象方法给出系统的主要需求模型) (6)3.1功能需求分析 (6)3.2 数据需求分析 (7)3.3 行为需求分析 (7)3.4 其他需求 (8)4. 总体设计与详细设计 (8)4.1 系统模块划分 (9)4.2 主要功能模块 (10)4.3 扩展功能设计思路 (10)5. 编码实现 (11)5.1游戏初始创建 (11)5.2定时器 (11)5.3背景及游戏开始、结束界面绘制函数 (11)5.4键盘控制函数 (12)5.5游戏对象进行碰撞测试和碰撞销毁 (13)5.6创建动态按钮(开始游戏、游戏规则) (13)5.6重新开始游戏代码 (14)5.7设置游戏难度代码 (14)5.8游戏结束时释放资源函数 (15)5.9调整对话框大小函数 (15)5.10开始界面背景绘制函数 (15)5.11选择下一关卡以及选择完成后的执行代码 (16)6.测试情况说明。
(17)6.1主要模块测试情况(白盒) (17)6.11各游戏对象碰撞检测爆炸模块测试 (17)6.12战机导弹的方向速度模块测试 (17)6.13文字显示,游戏结束和关卡进入模块测试 (18)6.14设置游戏难度和重新开始模块测试 (18)6.2 主要功能测试情况(黑盒) (18)6.21各游戏对象碰撞检测爆炸模块测试 (18)6.22敌机子弹导弹的方向速度模块测试 (19)6.23文字显示,游戏结束和关卡进入模块测试 (19)6.24设置游戏难度和重新开始模块测试 (19)7. 实训中遇到的主要问题及解决方法 (19)8. 实训收获与体会 (20)1. 概述本次实训主要是做一个基于windows的飞机大战单机版游戏,其实现的主要功能为:控制战机对象的移动,敌机对象的随机出现和发射子弹,实现游戏对象的爆炸特效,文字提示功能和界面背景切换特效,其主要是遵循开发者规定的游戏规则进行游戏闯关。
大学课程设计报告-飞机大战
湖北大学本科课程设计题目Java课程设计——飞机大战姓名学号专业年级指导教师职称2015年12月18日----目录----一.项目介绍-------------------------------- 1二.概要设计2.1资源需求------------------------------ 12.2游戏流程------------------------------ 1三.类设计3.1游戏界面类---------------------------- 23.2飞行物类------------------------------ 23.3敌机类-------------------------------- 23.4蜜蜂类-------------------------------- 33.5玩家飞机类----------------------------- 33.6子弹类-------------------------------- 4四.编码分析4.1游戏界面类---------------------------- 44.2飞行物类------------------------------ 114.3敌机类-------------------------------- 124.4蜜蜂类-------------------------------- 134.5玩家飞机类----------------------------- 134.6子弹类-------------------------------- 15五.游戏测试画面----------------------------- 16六.总结------------------------------------ 18针对Java课程设计,我做了一个小游戏——飞机大战,游戏代码包含到本学期所学的所有知识点。
程序运行后,进入到开始画面,鼠标单击开始游戏。
飞机大战程序设计报告
程序设计综合实践实习报告一、实习题目:飞机大战游戏二、实习时间: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,释放非空的指针,最后把新建的设备描述表也删除。
经典实验--飞机大战小游戏
经典实验--飞机⼤战⼩游戏·⼀、需求设计 1.为检测C语⾔的学习成果,根据所学的C语⾔知识,设计程序:飞机⼤战⼩游戏; 2.⾃⾏定义变量,函数或结构体,编写源代码并进⾏编译运⾏测试; 3.根据编写的代码,⾃⾏攥写实验报告;·⼆、系统设计 1 实验题⽬: 飞机⼤战⼩游戏 2 游戏描述 飞机⼤战是⼀款惊险刺激的射击游戏,通过控制飞机的上下左右移动,发射⼦弹,击退敌机并赢得分数,玩游戏既可以锻炼⼈的反应能⼒,也可以起到放松⾝⼼的作⽤. 进⾏C语⾔⾯向对象程序设计课程设计主要是在学习C语⾔这门⾯向对象语⾔的基础上,并通过实践加深对 C语⾔⾯向对象程序设计语⾔特点的认识与理解。
同时,可以提⾼运⽤C编程语⾔解决实际问题的能⼒;锻炼实际的编程能⼒;还能提⾼调查研究、查阅技术⽂ 献、资料以及编写软件设计⽂档的能⼒。
3 功能要求 【1】实现游戏难度的选择,飞机模型以及界⾯的外观设计等的功能。
【2】实现⽅向操移动的操作和敌机随机⽣成功能。
【3】分数计算功能。
【4】游戏的开始,暂停,结束以及分数显⽰的功能。
三、概要设计 1 简要设计及所涉及的知识 运⽤⼆维数组的加减和循环来设计游戏.通过下,xy的加减实现位置的移动;然后⽤⼀系列函数,实现各功能; 2 功能描述 (1) 难度选择: 1为困难,2为⼀般,3为简单,Enter开始游戏; (2) 操作:按1235控制飞机左下右上移动,空格发射⼦弹,按8暂停,按0停⽌游戏并输出分数;; (3) 游戏的测评⽅式为计分制,每击中⼀架敌机分数加1,⽆分数限制;·四详细设计 1定义全局变量 (1) long long int speed = 0;//控制敌机的速度 (2) int position_x, position_y;//飞机的所在位置 (3) int high, width;//地图的⼤⼩ (4) int bullet_x, bullet_y;//⼦弹的位置 (5) int enemy_x, enemy_y;//敌⼈的位置 (6) int map[MAX][MAX]; (7) /*地图符号说明:0表⽰空⽩,1表⽰战机*的区域,2表⽰敌⼈战机的位置。
飞机大战游戏课程设计报告
飞机大战游戏课程设计报告一、课程目标知识目标:1. 学生能理解并掌握编程语言的基本语法和结构,如变量、循环、条件语句等。
2. 学生能运用所学的编程知识,设计和开发一个简单的“飞机大战”游戏。
3. 学生能理解游戏设计中的数学原理,如坐标系统、碰撞检测等。
技能目标:1. 学生能够运用编程工具(如Scratch或Python等)进行游戏设计和开发,提高编程实践能力。
2. 学生通过团队协作,培养沟通与协作能力,学会共同解决问题。
3. 学生能够运用创新思维,设计和优化游戏功能,提高游戏的可玩性和趣味性。
情感态度价值观目标:1. 学生培养对计算机编程的兴趣和热情,激发学习动力。
2. 学生在游戏设计和开发过程中,培养自信心和成就感,增强自主学习能力。
3. 学生通过游戏设计,体会团队合作的重要性,学会尊重他人,培养良好的团队精神。
课程性质:本课程为信息技术学科,以实践为主,注重培养学生的动手能力和创新思维。
学生特点:五年级学生,对新鲜事物充满好奇心,具备一定的逻辑思维能力,喜欢动手操作。
教学要求:教师应引导学生通过自主学习、合作探究的方式,完成游戏设计和开发任务,关注学生的学习过程,及时给予反馈和指导,提高学生的综合素质。
在教学过程中,将课程目标分解为具体的学习成果,以便于教学设计和评估。
二、教学内容本课程教学内容依据课程目标进行选择和组织,主要包括以下几部分:1. 编程基础知识:- 变量的定义和使用- 常用的数据类型- 程序流程控制(条件语句、循环语句)- 函数的定义和调用2. 游戏设计原理:- 游戏的基本元素(玩家、敌人、子弹等)- 坐标系统与运动控制- 碰撞检测与游戏逻辑3. 编程工具与操作:- Scratch或Python编程环境的使用- 图形和角色的绘制与导入- 事件处理与声音效果的应用4. 项目实践:- 设计并开发“飞机大战”游戏- 团队合作与分工- 游戏测试与优化教学内容安排和进度:第一课时:介绍编程基础知识和游戏设计原理,让学生了解课程目标和要求。
飞机大战设计报告+开发计划讲解
项目设计报告项目名称:进击的飞机目录一、游戏整体概括 (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的飞机游戏开发开题报告开题报告(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)国内外同类研究的概况手机游戏种类和资源日益丰富,游戏界面越来越华丽,游戏规则日益复杂,已经具备了很强的娱乐性和交互性的复杂形态。
飞机大战可行性分析报告
飞机大战可行性分析报告飞机大战是一款经典的空战射击游戏,以飞行员操控战斗机在虚拟的战场上进行空中战斗为主题。
这款游戏因其简单易上手的操作方式和刺激的游戏体验,在过去几十年间一直备受玩家喜爱。
随着科技的发展和游戏市场的崛起,目前市面上已经有很多类似的飞机大战游戏,因此我们需要进行可行性分析,以确定是否有必要在该市场中推出新的飞机大战游戏。
二、市场调研1. 目前市场上的竞争情况:目前市场上已经有很多类似的飞机大战游戏,如《雷电》、《1945》等。
这些游戏在过去几十年间积累了大量的忠实用户群体,形成了较高的市场竞争。
2. 玩家需求分析:经过市场调研和用户调查,我们可以得出以下玩家需求:a. 游戏操作简单易上手,适合不同年龄段的玩家。
b. 游戏具有足够的刺激和挑战性,能给玩家带来快感和成就感。
c. 游戏拥有多样化的关卡和敌人种类,能够保持玩家的兴趣。
d. 游戏具有一定的可玩性和长久的游戏生命周期。
e. 游戏有一定的社交功能,方便与其他玩家进行交流和对战。
三、技术可行性1. 游戏引擎选择:目前市面上有很多成熟的游戏引擎可供选择,如Unity、Unreal Engine等。
这些引擎具有强大的功能和易用的编辑工具,能够满足开发团队对游戏制作的需求。
2. 开发团队实力:游戏的研发需要一个具有丰富经验和专业技能的开发团队。
他们需要熟悉游戏设计和开发流程,能够高效完成游戏的制作。
另外,游戏的美术设计、音效和程序开发也需要相应的专业人才支持。
四、可行性分析1. 市场竞争力:尽管市场上已经存在众多的飞机大战游戏,但由于该类型游戏一直备受玩家喜爱,有一定的市场潜力。
如果我们能够打造出一个优质的游戏,提供独特的游戏体验,吸引目标用户群体,就有可能在市场上获得一席之地。
2. 技术可行性:根据当前的技术水平和游戏引擎的成熟度,我们有足够的技术实力来开发一款高质量的飞机大战游戏。
开发团队具备相关的经验和技能,能够应对游戏制作过程中的各种挑战。
开题报告 基于Java的飞机大战游戏的设计与实现
90年代的我们,对小时候的一些经典街机游戏肯定是印象深刻,像“飞机大战超级玛丽”、“坦克大战””等,这些游戏伴随了我们童年,怀旧经典,重温这些经典的游戏,我选择“飞机大战”作为设计的项目。
而基于Java语言开发“飞机大战游戏”,也是对大学知识的一次运用,的项目不但可以重拾儿时的回忆,也同样是对大学知识的一次回顾与复习。
二、国内外现状及应用前景
Ja v a作为一门成熟的编程语言,以其简单性、可移植性和平台无关性到了广泛地应用,对于游戏开发来说,由于涉及到比较复杂的情况,开发过程很多时候是一个不断修改的过程,可以方便的修改游戏内容是十分天键的由其虚拟机特Java本身就可以用来编写游戏脚本,也有例如beanshe以无缝的和Java语言进行交互,这些都极大的方便由于Java语言的的可移植性和平台无关性等优点,如今设计开发的运用有两大是手机游戏,另一个就是Java语言在游戏开发如今正由市场正在不断的扩于苹果的17%,用Java语言开发游戏也迎来了黄金期Java语言称霸企业级应用这么多年,事实证明今Java在游戏开发领域,也正开始展露头脚。
3.2019年4月1日至4月10日,提交中期检查相关资料,参加中期检查。
4.2019年4月11日至5月10日,完成毕业设计考思科办公管理系统的实现与调试及毕业论文的攥写,提交毕业成果并申请答辩。
5.2019年5月11日至5月20日,参加毕业论文复制率检测和质量抽检。
6.2019年5月20日至5月30日,提交答辩相关资料,准备答辩事宜。
7.2019年6月1日至6月10日,按照学院安排,参加毕业论文(设计)答辩。
参考文献:
[1]明日科技.Java项目开发全程实录(第4版).北京:清华大学出版社,2018.
[2]薛华成.管理信息系统.北京:清华大学出版社,2013.
飞机大战实验报告
飞机大战实验报告专业:网络工程132班学号:姓名:孙仁强计算机科学与技术学院二零一六年十二月一、软件运行所需要的软硬件环境?本系统是以Windows系统为操作平台,用Java编程语言来实现本系统所需功能的。
?本机器的配置如下:?处理器:CORE i7?主频:1.2Hz以上?内存:4G以上?硬盘:HHD?50G编程语言:Java?开发环境:windows7?开发软件:Eclipse?Mars二、游戏流程1.用户打开游戏,进入开始菜单。
?2.用户点击开始游戏按钮,进入游戏界面;?3.用户通过触屏方式控制玩家飞机上下左右移动,躲避与子弹相撞;?4.游戏失败后,显示本次游戏得分,用的秒数和水平;?5.退出游戏三、主要代码1、准备代码设置窗口使用双缓冲使飞机不闪烁Constant设置窗口大小package com.ahut.准备代码;public class Constant {public static final int GAME_WIDTH = 350;public static final int GAME_HEIGHT = 600;}package com.ahut.准备代码;public class GameUtil {private GameUtil () {}public static Image getImage(String path) {BufferedImage bi = null;try {} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}return bi;}}package com.ahut.准备代码;public class MyFrame extends Frame{public void lauchFrame() {setSize(Constant.GAME_WIDTH, Constant.GAME_HEIGHT);setLocation(100, 100);setVisible(true);new PaintThread().start();addWindowListener(new WindowAdapter() {@Overridepublic void windowClosing(WindowEvent e) {System.exit(0);}});}private Image offScreenImage = null;public void update(Graphics g) {if (offScreenImage == null)offScreenImage = this.createImage(Constant.GAME_WIDTH, Constant.GAME_HEIGHT);Graphics gOff = offScreenImage.getGraphics();paint(gOff);g.drawImage(offScreenImage, 0, 0, null);}class PaintThread extends Thread {public void run() {while (true) {repaint();try {Thread.sleep(40);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}}主代码飞机:import com.ahut.准备代码.GameUtil;public class Plane extends GameObject {private boolean left, up, right, down;private boolean live = true;public void draw(Graphics g) {if (live) {g.drawImage(img, (int)x, (int)y, null);move();}}public void addDirection(KeyEvent e) {switch (e.getKeyCode()) {case KeyEvent.VK_LEFT: //左left = true; break;case KeyEvent.VK_UP: //上up = true; break;case KeyEvent.VK_RIGHT: //右right = true; break;case KeyEvent.VK_DOWN: //下down = true; break;default: break;}}public void minusDirection(KeyEvent e) {switch (e.getKeyCode()) {case KeyEvent.VK_LEFT: //左left = false; break;case KeyEvent.VK_UP: //上up = false; break;case KeyEvent.VK_RIGHT: //右right = false; break;case KeyEvent.VK_DOWN: //下down = false; break;default: break;}}public void move() {if (left) {x -= speed;}if (right) {x += speed;}if (up) {y -= speed;}if (down) {y += speed;}}public Plane(String imgpath, double x, double y) { this.img = GameUtil.getImage(imgpath);this.width = img.getWidth(null);this.height = img.getHeight(null);this.x = x;this.y = y;}public Plane() {}public void setLive(boolean live) {this.live = live;}public boolean isLive() {return live;}}子弹:import com.ahut.准备代码.Constant;public class Bullet extends GameObject {double degree;public Bullet() {degree = Math.random() * Math.PI * 2;x = Constant.GAME_WIDTH / 2;y = Constant.GAME_HEIGHT / 2;width = 10;height = 10;}public Rectangle getRect() {return new Rectangle((int)x, (int)y, width, height);}public void draw(Graphics g) {Color oldColor = g.getColor();g.setColor(Color.yellow);g.fillOval((int)x, (int)y, width, height);x += speed * Math.cos(degree);y += speed * Math.sin(degree);if (y > Constant.GAME_HEIGHT - height || y < 30) {degree = -degree;}if (x < 0 || x > Constant.GAME_WIDTH - width) {degree = Math.PI - degree;}g.setColor(oldColor);}}游戏对象:public class GameObject {Image img;double x,y;int speed=5;int width,height;public Rectangle getRect() {return new Rectangle((int)x, (int)y, width, height);}public GameObject(Image img, double x, double y, int speed, int width,int height) {super();this.img = img;this.x = x;this.y = y;this.speed = speed;this.width = width;this.height = height;}public GameObject() {}}主线程import com.ahut.准备代码.GameUtil;import com.ahut.准备代码.MyFrame;public class PlaneGameFrame extends MyFrame {Image bg = GameUtil.getImage("image/ped.jpg");Plane p = new Plane("image/plane.png", 50, 50);ArrayList bulletList = new ArrayList();Date startTime;Date endTime;public void paint(Graphics g) {g.drawImage(bg, 0, 0, null);p.draw(g);//在这里画子弹for (int i = 0; i < bulletList.size(); i++) {Bullet b = (Bullet)bulletList.get(i);b.draw(g);//检测跟飞机的碰撞boolean peng = b.getRect().intersects(p.getRect());if (peng) {p.setLive(false);break;}}if (!p.isLive()) {int period = ((int)endTime.getTime() - (int)startTime.getTime()) / 1000; //转换成秒printInfo(g, "时间: " + period + "秒", 20, 115, 300, Color.white);switch (period / 10) {case 0:case 1:printInfo(g, "菜鸟", 40, 115, 270, Color.white);break;case 2:printInfo(g, "入门", 40, 115, 270, Color.yellow);break;case 4:printInfo(g, "精通", 40, 115, 270, Color.white);break;case 5:printInfo(g, "大师", 40, 115, 270, Color.white);break;}}// printInfo(g, "分数: 100", 10, 50, 50, Color.yellow);}public void printInfo(Graphics g, String str, int size, int x, int y, Color color) { Color c = g.getColor();g.setColor(color);Font f = new Font("宋体", Font.BOLD, size);g.setFont(f);g.drawString(str, x, y);g.setColor(c);}public void launchFrame() {uchFrame();addKeyListener(new KeyMonitor());for (int i = 0; i < 10; i++) {Bullet b = new Bullet();bulletList.add(b);}startTime = new Date();}class KeyMonitor extends KeyAdapter {@Overridepublic void keyPressed(KeyEvent e) {p.addDirection(e);}@Overridepublic void keyReleased(KeyEvent e) {p.minusDirection(e);}}public static void main(String[] args) {new PlaneGameFrame().launchFrame();}}四、游戏实现截图五、实验总结JAVA和EclipsexMars是一款非常好的面向对象开发语言和平台,通过这一段时间的JAVA程序开发,我感觉到尽管的是不同的语言和平台,开发程序一样需要动脑和努力,每一款软件或者游戏都不是一朝一夕能制作出的,都需要大量的构思和编程,学习好软件工程这门课对日后的编程很有用,最后还有繁琐的调试检查运行时的错误,通过这次接触JAVA我今后会更努力的学习它。
飞机大战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我今后会更努⼒的学习它。
飞机大战课程设计报告摘要
飞机大战课程设计报告摘要一、课程目标知识目标:1. 让学生掌握飞机大战游戏中的基础物理知识,如速度、重力、碰撞等;2. 帮助学生了解计算机编程的基本逻辑,如循环、条件语句、变量等;3. 使学生理解游戏设计的基本原则,如游戏规则、界面设计、用户体验等。
技能目标:1. 培养学生运用物理知识解决实际问题的能力,如设计合理的飞行轨迹;2. 培养学生运用编程技能实现游戏功能,如编写飞机移动、发射子弹等代码;3. 提高学生的团队协作能力,通过合作完成一个完整的飞机大战游戏项目。
情感态度价值观目标:1. 激发学生对科学知识的兴趣,培养探索精神和创新意识;2. 培养学生面对挑战的积极态度,增强克服困难的信心;3. 引导学生正确看待游戏,认识到游戏可以成为学习工具,培养健康游戏观念。
课程性质:本课程为跨学科综合实践课程,结合物理、计算机编程和游戏设计等多学科知识。
学生特点:五年级学生,具备一定的物理知识和逻辑思维,对计算机编程和游戏设计有浓厚兴趣。
教学要求:注重理论与实践相结合,强调动手实践,鼓励学生探究、创新和合作。
通过本课程,使学生将所学知识应用于实际项目中,提高综合运用能力。
二、教学内容1. 物理知识模块:- 速度与加速度的概念及其在飞机运动中的应用;- 重力、碰撞的基本原理及其在游戏中的表现;- 简单力学知识在飞机大战游戏中的运用。
2. 计算机编程模块:- 编程环境与工具的使用;- 基本编程语法,如变量、循环、条件语句等;- 利用编程实现飞机大战游戏的基本功能,如飞机移动、子弹发射、敌机生成等。
3. 游戏设计模块:- 游戏规则设计与策划;- 游戏界面设计,如布局、色彩、字体等;- 用户体验与游戏测试,优化游戏性能。
教学大纲:1. 第一周:介绍物理知识模块,学习速度、加速度等概念,分析飞机运动规律;2. 第二周:学习重力、碰撞原理,探讨在游戏中如何应用;3. 第三周:学习计算机编程模块,掌握编程基础,编写简单的飞机大战游戏功能;4. 第四周:深入学习编程,实现游戏核心功能,如飞机移动、子弹发射等;5. 第五周:开展游戏设计模块教学,设计游戏规则、界面,进行初步测试;6. 第六周:优化游戏设计,进行用户体验测试,完善飞机大战游戏项目。
飞机大战游戏设计报告
飞机大战游戏设计报告一、需求分析飞机大战是一款经典的射击类游戏,玩家通过操作飞机并不断射击敌机,躲避敌机的攻击,获取高分。
游戏的主要目标是击败所有敌机,并活到最后,获得最高分数。
二、游戏流程设计1.开始界面:游戏开始时展示游戏的名称、背景音乐的控制按钮以及开始按钮。
2.游戏界面:游戏开始后,玩家会看到自己的飞机在屏幕底部,并且敌机会从屏幕顶部射击向玩家飞机。
玩家通过触摸或键盘控制自己的飞机移动,左手指向左,右手指向右,同时通过触摸或键盘射击按钮进行攻击。
3.游戏规则:-玩家可以通过左右移动来躲避敌机的攻击,同时用子弹攻击敌机。
-敌机被击中后会掉落道具,玩家可以通过接触道具来增加分数、生命值或者升级武器。
-玩家被敌机击中后,生命值减少,当生命值为0时,游戏结束。
-游戏结束后,会显示本局游戏得分和最高得分,并提供重新开始按钮和返回主菜单按钮。
三、游戏功能设计1.角色设计:-玩家飞机:可以左右移动,并发射子弹攻击敌机,有生命值。
-敌机:从屏幕顶部向下移动,发射子弹攻击玩家飞机,玩家可以通过攻击敌机获得分数。
-道具:掉落敌机后,玩家可以通过接触道具获得特殊能力,如增加分数、生命值或者升级武器。
2.武器设计:-玩家飞机的初始武器是普通子弹,每发射一颗消耗一定的能量。
-玩家可以通过接触道具来升级武器,拥有更强大的攻击能力。
-不同武器有不同的攻击方式和能量消耗。
3.难度设计:-游戏可以设置多个难度级别,随着游戏进行逐渐增加敌机的数量和速度。
-敌机的攻击方式和频率也会逐渐增加。
4.音效设计:-游戏中应该添加背景音乐,使游戏更具氛围。
-玩家飞机发射子弹、敌机爆炸、道具掉落等均应有相应的音效,增加游戏的趣味性和真实感。
四、游戏界面设计1.开始界面:简洁明了,显示游戏名称,背景音乐的控制按钮以及开始按钮。
2.游戏界面:-上方显示玩家得分和生命值。
-屏幕底部显示玩家飞机,并通过左右移动来躲避敌机的攻击。
-敌机从屏幕顶部向下移动,并发射子弹攻击玩家飞机。
飞机大战游戏设计实验(山科大)
程序设计综合实践报告姓名学号班级计算机科学与技术项目名称飞机大战游戏设计实验实习地点实习时间实习成绩指导教师签字信息科学与工程学院2015年7月25日目录1. 概述 (3)2. 相关技术 (3)2.1CObList链表 (3)2.2获取矩形区域函数 (3)2.3添加爆炸效果函数 (4)2.4弹出对话框函数 (4)2.5字体的输出 (4)2.7游戏隐形模式的实现 (4)2.8设置定时器 (4)2.9双缓冲技术 (5)2.10滚屏的实现 (5)3. 总体设计与详细设计 (5)3.1 系统模块划分 (5)3.2 主要功能模块 (6)4. 编码实现 (6)5. 实训中遇到的主要问题及解决方法 (24)6. 实训体会 (24)1. 概述飞机大战游戏是在Microsoft Visual Studio编程软件的MFC环境下制作的一款桌面游戏,界面简洁流畅、游戏方式简单。
游戏主要实现的功能和规则如下:(1)利用键盘中的上下左右键控制我方战机,空格键发射子弹。
战机生命值初始为5,血量初始值为100。
(2)屏幕上方随机产生敌机,战机产生的数量和当前玩家的等级有关,等级越高,产生的敌机越多,游戏难度越大。
而且敌机产生的位置和速度是不确定的。
只有当我机位于敌机下方时,敌机才会产生子弹,默认情况下是不发射任何子弹的。
(3)每个关卡都会产生BOSS,BOSS横向移动,生命值200。
战机和BOSS同时存在时,BOSS发射子弹。
(4)战机子弹打中敌机,敌机就会爆炸,同时玩家分数会增加1分,战机子弹打中BOSS,BOSS生命值减1,每得100分并且杀死BOSS过关。
2. 相关技术2.1CObList链表在本程序中使用了CObList链表来分别存储敌机,炸弹,导弹,爆炸效果。
CobList类似于一个双向链表,POSITION类型的变量为链表的键。
使用POSITION变量,既可以作为链表循环中的循环变量,也可以作为标记某个位置的标签。
飞机大战c课程设计报告
飞机大战c 课程设计报告一、课程目标知识目标:1. 让学生掌握飞机大战C课程中的基础编程概念,如变量、循环和条件语句。
2. 使学生了解游戏设计的基本流程,包括游戏规则、角色设计和用户交互。
3. 帮助学生理解坐标系在游戏编程中的应用。
技能目标:1. 培养学生运用编程语言解决问题和实现简单游戏的能力。
2. 提高学生运用逻辑思维进行程序设计和调试的能力。
3. 培养学生团队协作和沟通能力,共同完成飞机大战游戏项目。
情感态度价值观目标:1. 激发学生对编程和游戏设计的兴趣,培养其主动探索和创新的意识。
2. 培养学生面对困难和挑战时保持积极心态,勇于尝试和克服困难。
3. 培养学生遵守网络道德规范,正确对待游戏,养成良好的生活习惯。
分析课程性质、学生特点和教学要求:1. 课程性质:本课程为信息技术课程,结合游戏设计,提高学生的编程能力和逻辑思维。
2. 学生特点:五年级学生,具备一定的计算机操作能力和逻辑思维能力,对游戏有浓厚兴趣。
3. 教学要求:课程内容要贴近学生生活,注重实践操作,培养实际编程能力。
1. 熟练运用编程语言,独立完成飞机大战游戏的设计与编程。
2. 提高解决问题的能力和团队协作精神,为后续学习打下坚实基础。
3. 树立正确的价值观,养成良好的学习习惯,激发对信息技术的热爱。
二、教学内容1. 课程导入:介绍飞机大战游戏的基本概念,激发学生兴趣,明确学习目标。
教材章节:《信息技术》五年级下册第四章第一节。
2. 编程基础:讲解变量、循环和条件语句等编程概念,为游戏设计打下基础。
教材章节:《信息技术》五年级下册第四章第二节。
3. 游戏设计流程:介绍游戏设计的基本流程,包括游戏规则、角色设计和用户交互。
教材章节:《信息技术》五年级下册第四章第三节。
4. 坐标系应用:讲解坐标系在游戏编程中的应用,使学生能够实现角色移动和碰撞检测。
教材章节:《信息技术》五年级下册第四章第四节。
5. 实践操作:分组进行飞机大战游戏的编程实践,巩固所学知识,提高编程能力。
飞机大战设计报告+开发计划讲解
项目设计报告项目名称:进击的飞机目录一、游戏整体概括 (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类来做处理的。
飞机大战游戏设计资料报告材料
JA V A期中作业飞机大战目录飞机大战游戏设计报告1、游戏名称 (1)2、游戏初步框架: (1)3、游戏规则: (1)4、需求分析 (2)4.1功能需求: (2)4.2数据需求: (3)4.3用户需求: (4)4.4行为需求: (4)5、系统设计 (4)5.1 系统模块划分 (4)5.2 主要功能模块 (5)6、详细设计 (5)6.1 开发工具 (5)6.2 游戏界面设计 (5)飞机大战游戏设计报告1、游戏名称《飞机大战》2、游戏初步框架:游戏元素:游戏背景、不同种类的飞机、敌机游戏成分:碰撞之后的血量计算、分数统计、暂停恢复、数据存储游戏的总体设计:分为三个场景,第一个为游戏的进入场景,第二个为游戏的主界面场景,第三个为游戏结束场景,游戏分别有不同关卡,每一关有自己的剧情设计,玩法各一。
游戏开始场景就是开场背景,资源加载以及初始化处理,比如数据存储等。
游戏主界面场景是游戏核心,主要展示游戏过程,在游戏过程中计算得分,玩家战机血量等。
游戏结束界面是统计当前分数,显示玩家的最高分记录,并给出菜单的进一步设计。
3、游戏规则:(1)玩家战机数量为1。
(2)玩家可自由选择战机。
(3)玩家飞机可通过键盘控制战机上下左右移动。
(4)玩家子弹攻击敌机,敌机血量减少。
(5)敌机有计算机自主控制(6)敌机从界面上端出现,不能反向运动,不能左右移动。
(7)敌机数量随机,由计算机控制。
(8)敌机可发送子弹,若战机被击中,血量减少,血量减少到一定程度,战机坠毁,游戏结束。
(9)子弹具有一定的速度。
(10)玩家可在一段时间发送导弹清除屏幕中除Boss外的敌机。
4、需求分析4.1功能需求:飞机大战需要实现的主要功能如下:(1)用户进入游戏开始菜单可以选择开始游戏、退出游戏。
(2)战机可根据玩家的操作自由移动,但不可移出窗体外。
(3)玩家飞机以一定速度自下而上飞行,用户可以控制飞机上下左右移动。
(4)玩家飞机可连续发射子弹,子弹位置由战机起始位置决定,用户通过操控飞机位置来扫射飞机。
基于Python的飞机大战游戏系统设计与实现开题报告
游戏功能:实现飞机移动、发射子弹、多条生命、碰撞检测、敌机血量检测、事件监听、发放补给包等功能
主要参考文献
[1]《Python核心编程》(第二版)[美]Wesley J. Chun著宋吉广译 人民邮电出版社
[2]《零基础入门学习Python》小甲鱼著清华大学出版社
系统运行环境:Windows7及更高版本;
数据库系统介绍
MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理。
MySQL是开放源代码的,因此任何人都可以在General Public License的许可下下载并根据个性化的需要对其进行修改。
[9] 《Python游戏编程快速上手》 [美] Al Sweigart著 李强译 人民邮电出版社
[10] 《python游戏编程入门》 [美]James Payne著张春晖译清华大学出版社
[11] 《Python编程:从入门到实践》[美]Eric Matthes 著袁国忠译 人民邮电出版社
采取的主要技术路线或方法
学生姓名
学号
专业
软件工程
题目名称
基于Python的飞机大战游戏系统设计与实现
研究或设计概述
在社会经济发展迅速,人们的工作压力越来越来,长时间紧张繁忙的工作压力使人们精神紧绷,为了更好的工作并提高工作效率,这时间就需要短暂的休息让紧绷的精神放松一下。缓解压力的方式也很多,要选择适合自己的方式,玩游戏也是众多缓解压力方式之一。看电影、电视或者音乐也可以缓解压力,但是人们只是能被动的观看与倾听,并不能参与其中进行互动。而游戏有着很好交互性,玩家并不是仅仅在观看角色在如何移动,而是也要融入角色当中进行操作。在游戏中,玩家的行为也会对游戏产生影响。游戏除了让人娱乐之外还可以作为缓解压力的方式,在休息的时候可以不用想其他事情,这样压力就会得到缓解。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
飞机大战游戏开发开题报告
打飞机小游戏开题报告
毕业设计开题报告
篇二:基于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)国内外同类研究的概况
手机游戏种类和资源日益丰富,游戏界面越来越华丽,游戏规则日益复杂,已经具备了很强的娱乐性和交互性的复杂形态。
2003年10月,Andy Rubin等人创建了Android公司,google公司于2005年8月17日低调收购android以及其团队,Andy Rubin成为Google公司android项目工程部副主任,,在三年后的
GoogleI/O大会上谷歌提出android HAL
架构图,同年九月,谷歌发布android 1.0,这就是android的最早的版本,由于当时受到硬件技术的局限和3D技术的不完善,以及android没有得到公众的认可,所以当时安卓手机游戏并没有得到良好的发展,没有进入人们的日常生活,仅仅只能做出原始的简单的小游戏,而且玩家也不是很多。
时间来到了2011年,android操作系统以绝对的优势领跑只能手机界,而基于良好的平台支持和硬件的发展,使得android手机游戏得到了飞速的发展。
1基于良好的硬件制作更好效果的游戏
随着各平台对OpenGL ES支持能力的大力加强,使得开发复杂的3D场景游戏成为可能。
更多显示芯片对Android的支持,硬件性能将不再成为制约专业化游戏发展的瓶颈。
越来越多在PC、PSP、
PS3、XBOX360等各游戏平台占有领先地位的专业游戏公司将向Android等手机平台领域快速渗透,使得游戏的规划更加向专业化方向发展。
随
着Android版本的稳定以及游戏产业的蓬勃发展,Gameloft、Gamevil、EA等
大牌厂商开始进入Android平台,带来了高端的游戏体验。
利用3D技术和专业美工,在PC上制作出完美的主角和场景的模型,然后再移植到android平台上,进行后续开发,植入更好的模式和剧情,让玩家更好的加入到游戏中去。
2利用短距离无线传输新技术,实现联机游戏
展望未来,android游戏开发在更多层面,更广思路上,更多游戏情结和规则上,利用wifi技术和蓝牙,EDGE,实现玩家联机对战。
蓝牙是一种新型,开放且低成本的短距离无线连接技术,课取代短距离的电缆,实现数据的无线传输。
EDGE,即增强型数据速率GSM演进技术,它主要在GSM系统中采取了一种性的调制方法,即最先进的多是隙操作和SPSK调制技术。
WIFI即无线保真技术,是与蓝牙一样,同属于在办公室和家庭
中使用的短距离无线技术。
这些通讯能力也是属于硬件方面的展现,同时也是未来安卓手机游戏发展的趋势,玩家通过这些技术,来利用短暂的时间片,和其他玩家来实现互动游戏,而不是一个人枯燥的玩单机游戏,这样给android手机游戏带来了新的挑战和机遇。
(3)研究内容及计划
一款优秀的有机游戏需要用美术技巧,动画理论,实现方式,人机交换以及脚本程序等各个方面共同打造。
1课题内容:基于Android平台的飞机游戏开发的飞机游戏开发
2需求分析:本游戏是主要基于Android系统下开发的应用,
采用java语言和安卓自带的xml布局编写,操作简单,容易上手。
游戏由玩
家触摸屏幕来控制飞机的移动,即上下左右,子弹为自动发射,没有子弹数的约束,但是有子弹的威力大小,玩家可以控制飞机通过移动,来躲敌机的子弹,一旦
触碰敌机或者敌机子弹,即判为任务失败,玩家通过摧毁敌机和最后boss获得分数。
系统设计排行榜,自动把高分玩家记载进内置的数据库,玩家一旦摧毁最终boss则判断为通过本关,自动开启下一关,通过特定的关数,会自动解锁新的飞机,新的飞机拥有更好的移动速度,子弹威力,和更多的生命值,使得玩家非常想通过通关开启新的飞机,从而欲罢不能,喜欢上这款游戏。
此游戏还融入了很多动作类游戏特有的技术,使得画面流畅、声音震撼。
游戏操作简单,易于上手,且火爆的游戏场面,快速、激烈、紧张的游戏节奏会使玩家产生浓厚兴趣。
3系统设计概要
(1)游戏的内容设定:玩家通过点击屏幕来控制飞机,飞机自
动发射子弹,当玩家控制的飞机发射子弹碰触到敌方飞机,则敌方飞机坠毁,而我方飞机被敌方飞机子弹触碰,玩家控制的飞机则损失生命,当有限的生命损失殆尽则游戏结束,当玩家打败最终boss后则判断为通关,否则通关失败,当进行第二关时,玩家的生命值刷新,第三关,第四关依旧如此。
(2)过管条件设定:玩家需要在丢失最后一个生命前击败最后
boss
(3)游戏结束设定:玩家控制的飞机丢失最后一个生命,即判
断游戏结束
(4)游戏规则设定:
1子弹
飞机能每分钟能自动发射一定的子弹数目,只要出现敌方飞机
玩家控制飞机自动发射现有子弹
2血条或者生命
飞机拥有血条或者生命,根据飞机的生命剩余量,或者飞机血量的剩余量,来决定是否继续可以战斗,每次被击中或者被敌机撞击后生命数或者血量下降,当生命数或者血量下降到0,则游戏结束。
3碰撞
当敌机与玩家控制飞机图片相互重叠则判为碰撞,玩家控制飞机损失生命或者血量,并且不能获得摧毁敌机的分数
4敌机被击中
当玩家控制的子弹出现在敌机图片的范围时,敌机则被摧毁,玩家获得相应的分数
5玩家控制战机被击中
当敌机发射子弹出现在玩家控制战机图片的范围时,玩家控制战机则损失生命或血量
6子弹重叠(即子弹相互抵消)
当玩家控制战机发射子弹图片与敌机发射子弹相互重叠,则判断为子弹相互抵消,子弹消失
篇三:游戏开发开题报告
云南大学旅游文化学院
毕业设计(论文)开题报告
课题名称: 基于Unity3D的射击类游戏研究
院 (系): 信息科学与技术系
专业:计算机(来
自: 写论文网:飞机大战游戏开发开题报告)科学与技术
学号:20121202046
学生姓名: 黄春迪
指导教师: 杨玉婷
职称:
题目类型
2016年6月26日
一、选题依据
二、研究(设计)实施方案
三、前期工作
四、研究基础条件五、指导教师意见六、开题小组意见七、系意见。